![](/img/trans.png)
[英]XMLHttpRequest cannot load http://localhost:8089/jquery. Origin null is not allowed by Access-Control-Allow-Origin
[英]XMLHTTPRequest cannot load http://… Origin http://localhost:port is not allowed by Access-Control-Allow-Origin
我正在使用一些第三方web api,当我在我的应用程序中通过ajax调用调用web api时,总是会出错而不是成功。 在检查控制台时我得到“XMLHTTPRequest无法加载http:// ...原始http // localhost:port /不允许Access-Control-Allow-Origin”错误
$.ajax({
url: "SomeURL",
type:"GET",
dataType: 'jsonp',
crossDomain: true,
success: function (data) {
alert("Success");
},
error: function (data, Errtext) {
alert("some error occured");
}
});
当我直接在浏览器中访问该URL时,我以XML格式接收数据
我也提到类似的问题如何在jsonp中解决未捕获的语法错误但没有得到解决方案
提前致谢
您可以在浏览器中看到响应,因为只有跨域ajax请求受同一原始策略的约束。
要克服相同源策略的限制,您应该使用jsonp或跨源资源共享(CORS)。
JSONP: 什么是JSONP?
请注意,要使用jsonp,您调用的第三方Web API应支持jsonp。
CORS:跨源资源共享标准的工作原理是添加新的HTTP标头,允许服务器描述允许使用Web浏览器读取该信息的起源集。 此外,对于可能对用户数据产生副作用的HTTP请求方法(特别是对于GET以外的HTTP方法,或对某些MIME类型的POST使用),规范要求浏览器“预检”请求,请求支持的方法从具有HTTPOPTIONS请求方法的服务器,然后,在服务器“批准”时,使用实际的HTTP请求方法发送实际请求。 服务器还可以通知客户端是否应随请求一起发送“凭据”(包括Cookie和HTTP身份验证数据)。
https://developer.mozilla.org/en/docs/HTTP/Access_control_CORS
要在asp.net应用程序中启用CORS:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.