【发布时间】:2018-11-25 04:36:44
【问题描述】:
我使用 Jquery AJAX 调用了第三方 API。我在控制台中收到以下错误:
跨域读取阻止 (CORB) 阻止了 MIME 类型为 application/json 的跨域响应 MY URL。详情请见https://www.chromestatus.com/feature/5629709824032768。
我在 Ajax 调用中使用了以下代码:
$.ajax({
type: 'GET',
url: My Url,
contentType: 'application/json',
dataType:'jsonp',
responseType:'application/json',
xhrFields: {
withCredentials: false
},
headers: {
'Access-Control-Allow-Credentials' : true,
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Methods':'GET',
'Access-Control-Allow-Headers':'application/json',
},
success: function(data) {
console.log(data);
},
error: function(error) {
console.log("FAIL....=================");
}
});
当我签入 Fiddler 时,我得到了响应的数据,但没有在 Ajax 成功方法中。
请帮帮我。
【问题讨论】:
-
您调用的 API 似乎没有启用允许来自 JS 的跨域调用所需的标头。您很可能需要在服务器上进行调用。您确定响应是 JSONP 而不是纯 JSON?另请注意,您在请求中添加的标头需要放在服务器的 response 中。
-
您是否解决了这个 CORB 错误或警告?我在请求模块中遇到了同样的情况。
-
@SherwinAblañaDapito 如果您仍在寻找解决方案,请参阅 my answer 了解开发/测试环境
-
为了演示你的 JS 如何正常工作,你可以在不安全模式下启动 Chrome chrome.exe --user-data-dir="C:/Chrome dev session " --disable-web-security 但是“读取阻塞 (CORB) 阻止了跨域响应”必须在服务器端修复。
标签: javascript jquery ajax cors cross-origin-read-blocking