1

我正在测试 excel 中的scriptlab插件

我尝试对外部端点执行休息调用,如下所示

$.ajax({
            url: "https://jsonplaceholder.typicode.com/posts/1",
            dataType: 'JSON',
            headers: {
              'Authorization': 'Basic blablabla',
            })....

以上工作正常。但是在启用 CORS 的端点上,我得到了 xhr.readyState 0 。

如何避免 CORS 问题?(我不是终点的所有者)

4

2 回答 2

3

首先,感谢您试用Script Lab

我将首先回答以下问题: 特定于 Office Add-ins 和/或 Script Lab 的问题。最简单的方法可能是尝试不同的 JS 游乐场,例如 JSFiddle 或 CodePen。你能在那里打电话吗?这将隔离 CORS 和应用程序域的问题(Slava 提到的)。尽管

在一般指导方面,我认为您有几种选择

  • 您正在调用的服务可能允许特定 URL 的例外情况(即,它可能会要求您提供将要调用的 URL,并将该 URL 列入白名单)。如果是这样,请给它https://script-lab-runner.azureedge.net的 URL(URL 本身不会像预期的那样解析;但是您编译的运行代码段最终将运行它)。
  • 您可以创建自己的服务器(或者可能是一个非常小的计算单元,如Azure Function)来代表您在服务器端进行调用(CORS 不是问题)。您可以让 Azure 函数本身接受 CORS。这样,您实际上是通过您自己的服务器代理请求,您可以在其中启用 CORS。

希望这可以帮助!

于 2017-04-20T16:25:43.963 回答
0

您应该修改您的清单文件并将您的域添加到AppDomains标记以被应用程序信任。默认情况下,您的加载项可以加载与 SourceLocation 元素中指定的位置位于同一域中的任何页面。要加载与加载项不在同一域中的页面,请使用 AppDomains 和 AppDomain 元素指定域。

于 2017-04-19T19:37:57.417 回答