我有一个脚本,它获取用户的UPS跟踪号码,并通过跨域AJAX请求(使用jQuery.ajax)从UPS跟踪API中获取跟踪信息。直到两周前一切都很顺利。
然后,突然间,由于臭名昭著的“不‘访问-控制-允许-起源’标题出现在被请求的资源上,每个请求都失败了。”错误。
问题是,请求仍在顺利通过。如果我检查中的网络选项卡,我可以在标头中看到状态代码200。单击Preview或Response选项卡,我可以看到应该返回的正确的JSON响应。
首先,我很困惑,如果我的原籍不被允许进入,我是如何得到适当的回应的。第二,是否有任何方法可以让这个错误发生,并且仍然可以访问响应?我尝试从" error“和"complete”回调(使用jQuery.ajax)获取xhr对象,但我只能访问error对象。
我的代码:
$.ajax({
type: "POST",
dataType: "json",
url: url,
data: json,
success: function(data){
cb(data);
},
error: function(xhr, status, error){
console.log(xhr, status, error);
// logs: {readyState: 0, responseText: "", status: 0, statusText: "error"}
},
complete: function(xhr, status){
console.log(xhr, status);
// also logs: {readyState: 0, responseText: "", status: 0, statusText: "error"}
}
});
发布于 2017-01-25 23:31:06
事实上,这是一个跨域的问题,您有多个解决方案可以补救:
跨域阅读:CORS
添加到请求的标题中。
Access-Control-Allow-Origin: *
或允许您使用的浏览器中的跨域:
Chromium-browser --disable-web-security --user-data-dir
关于狩猎旅行:
Development > Disable Multi-Origin restriction
https://stackoverflow.com/questions/41863350
复制相似问题