当前位置: 首页 > 知识库问答 >
问题:

Ajax调用脚本实验室的CORS问题

堵飞鸿
2023-03-14

我在Excel中测试脚本实验室插件

我尝试对外部endpoint执行rest调用,如下所示

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

上面的工作正常。但在启用CORS的endpoint上,我得到了一个xhr.readyState 0。

如何避免CORS问题?我不是终端的主人

共有2个答案

龙高超
2023-03-14

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

邓光耀
2023-03-14

首先,感谢您试用脚本实验室!

我将首先回答以下问题:这个问题是否特定于Office插件和/或脚本实验室。最简单的方法可能是尝试不同的JS平台,例如JSFIDLE或CodePen。你能在那里打电话吗?这将隔离CORS和应用程序域的问题(斯拉瓦提到的)。虽然

就一般指导而言,我认为你有几个选择

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

希望这有帮助!

 类似资料:
  • 问题内容: 我使用jQuery的.load函数将一些HTML代码加载到div中,其中包含要执行的一些代码; 加载ajax请求后,alert(); 函数起作用,但是someFunction无法起作用。 如何从Ajax调用执行此功能 执行的功能也不起作用。 问题答案: 可能您应该使用jQuery.getScript从服务器加载一些javascript并执行它。 更新: 在大多数情况下,仅加载纯HTML

  •        点击主界面中左上方菜单图标可打开用户信息侧边栏,点击侧边栏中的设置图标可跳转至设置页面:        设置页面内,点击实验室选项可跳转至实验室页面。        实验室页面主要包含:路径规划模式、绘制点位吸附、标注名显示、地图缩放、电子罗盘、水印相机、相机替换、测距相机。

  • 问题内容: 我在这里http://www.phpletter.com/Demo/AjaxFileUpload- Demo/ 找到了这个ajax文件上传脚本 应该将ajax功能添加到我的文件上传表单中 我设置了一个在提交上传表单时要调用的函数,如下所示: 但它跳过了成功回调函数,浏览器询问我是否要下载json文件。看一下我的上传操作: 我使用了jQuery.post,它将执行控制器操作,但文件将为n

  • 问题内容: 我一直在用这个把头砸在砖墙上,我已经在stackoverflow上尝试了很多解决方案,但找不到一个可行的方案! 基本上,当我发布我的AJAX时,PHP返回JSON,但是AJAX显示Undefined而不是值: JS : PHP的 : firebug的JSON结果 : AJAX将JSON结果显示为Undefined,我不知道为什么。我尝试显示添加和。我也曾尝试将其更改为and:尽管仍然没

  • 问题内容: 我是WordPress设计师,我为自己的主题之一开发了联系表格,该主题已通过jQuery验证。 请检查下面的代码,然后阅读下面的注释。 笔记: sendEmail.php是使用PHPmailer类发送电子邮件的正确脚本。 templatePath变量具有如下所示的完整模板路径的值:http : //somedomain.com/wp-content/themes/themename 上