【问题标题】:Call Custom REST API from Confluence从 Confluence 调用自定义 REST API
【发布时间】:2018-08-29 10:30:33
【问题描述】:

我创建并部署了自己的 web 服务 (WCF C#)。我想使用 JavaScript 调用它,获取数据并填充图表。

这是我在 Confluence 中粘贴的代码HTML macro

<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 提供。

我已经 whitelisted 服务 URL http://mydomain:port/MyService.svc/testRest。假设我在我的域上激活 SSL,这会解决问题吗?有更好的方法吗?

主要思想是使用外部数据加载/填充表格/图表。所以我首先从我自己的服务开始,它返回一个 JSON 结构。如果可行,我可以使用该结构来填充/加载 HighCharts 组件。

【问题讨论】:

    标签: javascript c# rest asp.net-web-api confluence


    【解决方案1】:

    http://mydomain:port/MyService.svc/testRest 更改为https://mydomain:port/MyService.svc/testRest。谷歌浏览器不喜欢你有一个通过 https 提供的页面,然后使用 http 调用服务。所以,是的,激活 SSL 并使用它 将解决问题。我什至会说任何服务都不应该使用非安全通道。让您的服务要求 ssl。

    【讨论】:

    • 我怀疑CORS 也会发挥作用
    • @stuartd - 一旦他克服了混合内容错误,它可能会发生,但这将是一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多