【发布时间】:2018-03-08 11:23:34
【问题描述】:
我正在尝试将远程 Web 应用程序连接到本地 SharePoint 2016 解决方案。我坚持进行身份验证,因此我可以从 SharePoint 访问列表。它只能是只读的。
这是我的电话(来自 Postman):
var settings = {
"async": true,
"method": "POST",
"url": "http://mycompanywebsite/sites/home/_api/Web/Lists('guid'55a15262-34d5-4b5c-aec9-27fdc1c02589')",
"headers": {
"X-RequestDigest": "Unique ID Here",
"Content-Type":'application/json'
}
}
$.ajax(settings).done(function(response){
console.log(response);
});
任何尝试都遇到“401 Authorized”错误。使用 Fiddler 的“自动验证”功能,我能够得到不同的结果:
尝试 A。) 通过添加以下自定义标头来更新服务器上的 web.config 文件:
<add name="Access-Control-Allow-Origin" value="http://localhost:1234" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true"/>
这会导致:
Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*
尝试 B。) 通过启用“Access-Control-Allow_Origin”来更新服务器上的 web.config 文件,如下所示:
<add name="Access-Control-Allow-Origin" value="*" />
这会导致:
Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*
尝试 C.) 我在上面的 AJAX 调用中添加了 "crossDomain": true 属性。
"crossDomain": true,
这会导致:
Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*
我不确定我在哪里出错了。我能够毫无问题地访问内部 SharePoint,访问我尝试对其进行身份验证的 SharePoint URL,但什么也没有。
【问题讨论】:
-
我也遇到了同样的问题,你找到解决办法了吗?
标签: jquery ajax sharepoint cors fiddler