跨域请求被阻止:同源策略不允许读取远程资源

Posted

技术标签:

【中文标题】跨域请求被阻止:同源策略不允许读取远程资源【英文标题】:Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at 【发布时间】:2014-08-02 15:38:49 【问题描述】:

我在我的网站中使用CometChat,最近我的用户在接收消息时遇到了这个问题。在 FireBug 中检查后,我意识到脚本失败一定是因为 CORS 保护(由于以下错误)。

跨域请求被阻止:同源策略不允许读取 远程资源在 http://x3.chatforyoursite.com/subscribe/... 这可以通过将资源移动到同一域或 启用 CORS。

现在我想知道应该在哪里启用 CORS,因为它是在我自己的服务器上启用的,而我无法访问 CometChat 服务器。

【问题讨论】:

【参考方案1】:

x3.chatforyoursite.com处的服务器需要输出如下头部:

Access-Control-Allow-Origin: http://www.example.com

http://www.example.com 是您的网站地址。您应该检查chatforyoursite.com 上的设置,看看您是否可以启用此功能 - 如果不能,他们的技术支持可能是解决此问题的最佳方法。但是,要回答您的问题,您需要远程站点允许您的站点访问 AJAX 响应客户端。

【讨论】:

【参考方案2】:

CORS 的用例很简单。想象一下网站 alice.com 有一些网站 bob.com 想要访问的数据。在浏览器的同源策略下,这种类型的请求传统上是不允许的。但是,通过支持 CORS 请求,alice.com 可以添加一些特殊的响应标头,以允许 bob.com 访问数据。 为了更好地理解它,请访问这个不错的教程.. How to solve the issue of CORS

【讨论】:

以上是关于跨域请求被阻止:同源策略不允许读取远程资源的主要内容,如果未能解决你的问题,请参考以下文章

跨域请求被阻止:同源策略不允许在 http://........ 读取远程资源

Ajax:跨域请求被阻止:同源策略不允许读取远程资源

跨域请求被阻止:同源策略不允许读取某个 URI 处的远程资源

跨域请求被阻止:同源策略不允许在 http://localhost3000 读取远程资源

跨域请求被阻止:同源策略不允许在 https://localhost:3000/ 读取远程资源 [重复]

Angular + Nodejs Express:错误跨域请求被阻止:同源策略不允许读取远程资源