CORS标头'缺少访问控制允许原点
CORS header 'Access-Control-Allow-Origin missing
我正试图调用一些从本地网页编写的WCF服务,但我遇到了左右交叉的错误,但只有当我尝试从JavaScript调用时才会出现。
几个月来,我断断续续地试图解决这个问题,但没有成功;我无计可施。我已经摆弄了web.config、网站的IIS响应标头、无数博客、其他SO帖子和enable-cors.org好几个小时了,但我仍然碰壁。
调用WCF服务的JS代码:
var url = "http://(foo)/WCF.svc/Bar"
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.onload = function () {
console.log(xhr.responseText);
}
xhr.send();
WCF服务的C#函数:
[OperationContract, WebInvoke(UriTemplate = "/Bar/", Method = "GET")]
public string Bar() { return "Success!"; }
WCF服务的Web.config的相关段:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
<add name="Access-Control-Max-Age" value="1728000" />
</customHeaders>
</httpProtocol>
</system.webServer>
正如我之前所说,来自其他语言的HTTP请求没有问题。C#和ActionScript3使用相同的WCF调用可以很好地工作,但JS不会让我克服这些错误。
有人知道可能发生了什么吗?
问题出在这两行上
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
*
不是这两个头的有效值
阅读此处的规范
相关文章:
- CORS:访问控制允许原点不等于提供的原点
- 本地跨原点数据错误
- d3用时钟中的两个指针变换原点
- Cordova白名单允许导航与访问原点
- 谷歌地图API-从方向的原点检索定位
- 跨原点-弹出窗口(window.opener为空)
- 全局变量原点
- 如何在 html Web 应用中检测滑动原点位置
- 在自定义 JS 游标上设置游标原点
- 三.js - 如何获取相机相对于原点的位置
- 即使在服务器将访问控制允许原点设置为“*”之后,也会收到javascript错误
- OpenLayers圆始终显示在原点
- JSONP跨原点错误'不存在Access Control Allow Origin标头'
- 如何在交叉原点的角度中设置xsrf令牌
- 角度:原点http://localhost在Access Control Allow Origin标头中找不到
- 未捕获的InvalidValueError:在属性原点中:索引0处:不是字符串,也不是LatLng或LatLngLite
- DynamoDB本地访问控制允许原点
- 否'访问控制允许来源'标头存在于请求的资源上.原点''因此不允许访问
- 带有本地客户端的Socket.io.原点为null且访问控制允许原点
- CORS标头'缺少访问控制允许原点