[英]Getting a error(Cross-Origin Request Blocked) when making an $.ajax call
我正在打电话获取一些信息,但是我一直收到此错误
跨域请求被阻止:(原因:缺少CORS标头“ Access-Control-Allow-Origin”)
$.ajax({
type: 'GET',
url: www.example.com/,
dataType:"json",
success: function(data) {
alert(data)
},
error: function() {
alert('error')
}
});
返回的东西是作为json来的
有任何想法吗?
首先,我认为应将url: www.example.com/
引用为url: "www.example.com"
。 第二,除非服务器允许,否则您将无法发出跨域Ajax请求https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS 。 您可以使用CORS或JSONP。
您可以通过jsonp发出请求来绕过CORS(仅GET请求!)
$.ajax({
type: 'GET',
url: www.example.com/,
dataType:"jsonp",
success: function(data) {
alert(data)
},
error: function() {
alert('error')
}
});
我可以使用$ .ajax调用中的以下选项解决问题。
xhr.withCredentials = true;
Access-Control-Allow-Credentials: true
阅读以下内容以更好地理解这一点。
withCredentials
默认情况下,标准CORS请求不会发送或设置任何Cookie。 为了将cookie包括在请求中,您需要将XMLHttpRequest的.withCredentials属性设置为true:
xhr.withCredentials = true;
为了使其工作,服务器还必须通过将Access-Control-Allow-Credentials响应标头设置为“ true”来启用凭据。 有关详细信息,请参见服务器部分。
访问控制允许凭据:true
.withCredentials属性将在请求中包括来自远程域的所有cookie,并且还将设置来自远程域的所有cookie。 请注意,这些cookie仍然遵循同源策略,因此您的JavaScript代码无法访问来自document.cookie或响应头的cookie。 它们只能由远程域控制。
希望这也对您有帮助:)
我认为PHP网站需要放置这样的内容,在我的网站上我将其称为apiheader,并在需要时将其包括在内
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.