从Confluence调用自定义REST API

3
我已经创建并部署了自己的Web服务(WCF C#)。我想使用JavaScript调用它,获取数据并填充图表。
以下是我粘贴到Confluence HTML宏中的代码:
<script>
function fun() 
{
    var request = $.ajax({
        url: "http://mydomain:port/MyService.svc/testRest",
        data: "m=aa",
        processData: true,
        type: "GET",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
             console.log(response);
        },
        error: function (e) {
             console.log('error ' + e.status + ' ' + e.responseText);
         }
      });
 }

 var x =  fun();
 console.log(x);
</script>

我在Google Chrome的开发者控制台(F12)中收到的错误信息:

混合内容:页面 'https://myconfluencesite.com/mypage' 已通过HTTPS加载,但请求了一个不安全的XMLHttpRequest端点 'http://mydomain:port/MyService.svc/testRest?m=aa'。此请求已被阻止;内容必须通过HTTPS提供。

我已经将服务URL http://mydomain:port/MyService.svc/testRest 添加到白名单中(whitelisted)。如果我在我的域上激活SSL,是否可以解决这个问题?还有更好的方法吗?

主要想法是利用外部数据来加载/填充表格/图表。因此,我首先使用自己的服务返回JSON结构。如果这样可以成功,那么我就可以使用该结构来填充/加载例如HighCharts组件等内容。

enter image description here

1个回答

0

http://mydomain:port/MyService.svc/testRest 更改为 https://mydomain:port/MyService.svc/testRest。Google Chrome 正确地不喜欢您通过 https 提供页面,然后使用 http 调用服务。因此,是的,激活 SSL 并使用它将解决此问题。我甚至会说,没有服务应该使用非安全通道。让您的服务要求使用 ssl。


我怀疑CORS也会发挥作用。 - stuartd
@stuartd - 一旦他克服了混合内容错误,也许会这样,但那将是另一个问题。 - user4843530

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接