Javascript Chrome可以访问跨域API,尽管控制台中有错误,为什么?

Javascript Chrome可以访问跨域API,尽管控制台中有错误,为什么?,javascript,google-chrome,cross-domain,Javascript,Google Chrome,Cross Domain,正如我在标题中所说,当我试图访问跨域API时,我对Chrome感到困惑,详情如下: 请求片段: xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { console.log(JSON.parse(xhr.responseText)); } }; 在代理之前: 如您所见,200确定并实际获得了响应数据:

正如我在标题中所说,当我试图访问跨域API时,我对Chrome感到困惑,详情如下:

请求片段:

xhr.onreadystatechange = function() {
  if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
    console.log(JSON.parse(xhr.responseText));
  }
};
在代理之前:

如您所见,200确定并实际获得了响应数据:

在代理之后:

请参阅,错误消失并记录正确的结果


不知道为什么。有什么帮助吗?
顺便说一句,同样的情况在Firefox中没有发生。在Firefox中,当我访问跨域时,当控制台中出现跨域错误时,它将不会得到任何响应。

在您的响应标题中,您应该设置
访问控制允许来源:
只需解决问题。

我可以向您保证,如果出现CORS错误,firefox仍然能够在开发者工具控制台和网络选项卡中显示响应。。。这些选项卡用于调试。。。仅仅因为你可以在那里看到它并不意味着你可以在“页面代码”中看到它-你已经修复了CORS,所以,没有更多problem@JaromandaX你的意思是网络只是为了检查而设计的,所以开发者工具会自动为开发者做代理工作,而实际上跨域请求不会正常工作?(比如我以前测试过,只是想得到一个确定的答案。)不,那不是我当时说的all@JaromandaX0.0您能更明确地解释一下吗?thx)开发者工具控制台能够显示的内容比网页所必需的要多。没有涉及代理,请求被发送,响应被接收,但是浏览器采用了CORS协议来防止网页内不必要的“跨源资源共享”