CORS:我需要它吗?

时间:2014-07-07 13:13:12

标签: ajax web-services cors

我有一组太多的域名,它们的常用文件就像我在中央服务器上的javascript文件一样。

现在我有了这个设置:

点击域A上的页面项目,在中央服务器上执行脚本,该服务器调用域A上的Web服务。

所以我想如果我的脚本将在域A上,一切都会正常工作(除了我必须在我的60个域上有大约60个我的脚本副本)。但我希望我的网络服务永远不会被调用,因为我在这里遇到了CORS问题。

这样:

" A"加载来自" Central"的脚本在" A"上执行它和Web服务。由放置在" Central"。

中的脚本调用

这是需要CORS的情况吗?或者我的错误可能在其他地方(或两者......但那是我的问题)

2 个答案:

答案 0 :(得分:6)

如果 JavaScript 客户端在网页中需要,您只需要CORS(或其他方法来规避同源策略)向具有不同 origin (方案,主机名和/或端口)的HTTP服务器发出HTTP请求。 (例外:如果它是一个简单的请求,并且您不需要JS可用的响应数据)。

您需要CORS的最大线索是,如果JavaScript错误控制台抱怨 Access-Control-Allow-Origin 不允许使用Origin foo。

您的描述不是很清楚,但听起来您正在从一个源上托管的客户端代码发出请求,但是加载到托管在另一个源上的页面但是向页面原点发出HTTP请求。这可以。原点取决于加载脚本的HTML文档的URL,而不是加载脚本的URL。

答案 1 :(得分:1)

问题实际上是加载页面的HTTP请求到哪里,从各种服务器加载的任何资源,如.js,.css或图像都可以(没关系)。唯一的问题是当您将操作(例如AJAX调用或任何XHR)调用到与源不完全相同的服务器时。然后你需要使用CORS或JSONP。