跨域请求被阻止:同源策略不允许读取远程资源
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://........ 读取远程资源
跨域请求被阻止:同源策略不允许读取某个 URI 处的远程资源
跨域请求被阻止:同源策略不允许在 http://localhost3000 读取远程资源