跨源读取阻断(CORB)。
我使用Jquery AJAX调用了第三方API。我在控制台得到以下错误。
Cross-Origin Read Blocking (CORB) blocked cross-origin response MY URL with MIME type application/json.更多细节请参见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成功方法中没有。
请帮助我。
104
3
在大多数情况下,被封锁的响应不应该影响网页的行为,CORB 错误信息可以被安全地忽略。 例如,警告可能发生在被阻止的响应的主体已经为空的情况下,或者当响应将被传递到一个不能处理它的上下文时(例如,一个HTML文档,如404错误页面被传递到一个标签)。
https://www.chromium.org/Home/chromium-security/corb-for-developers
我不得不清理我的浏览器的缓存,我在这个链接中读到,如果请求得到一个空的响应,我们会得到这个警告错误。我的请求得到了一些CORS,所以这个请求的响应是空的,我所要做的就是清除浏览器的缓存,CORS就消失了。我收到CORS是因为chrome在缓存中保存了端口号,服务器只接受 "localhost:3010",而我在做 "localhost:3002",因为有缓存。
你必须在服务器端添加CORS:。
如果你使用的是nodeJS,那么。
首先你需要使用下面的命令来安装
cors
。现在,将以下代码到你的应用程序的起始文件中,如(
app.js 或 server.js
)。响应头文件一般在服务器上设置。在服务器端设置
'访问控制-允许头信息'
为'内容-类型'
。