跨域 – AngularJS对跨源资源执行OPTIONS HTTP请求
我试图设置AngularJS与跨源资源通信,其中提供我的模板文件的资产主机是在不同的域,因此XHR请求角执行必须是跨域。我已经添加了适当的CORS头到我的服务器的HTTP请求使这项工作,但它似乎不工作。问题是,当我在我的浏览器(chrome)中检查HTTP请求时,发送到资产文件的请求是一个OPTIONS请求(它应该是一个GET请求)。
我不知道这是否是AngularJS中的错误,或者如果我需要配置的东西。从我的理解,XHR包装器不能做一个OPTIONS HTTP请求,所以它看起来像浏览器试图找出是否“允许”下载资源首先执行GET请求。如果是这样,那么我需要为资产主机设置CORS头(Access-Control-Allow-Origin:http://asset.host …)吗?
OPTIONS请求不是一个AngularJS错误,这是跨源资源共享标准强制浏览器的行为。请参考本文档:
https://developer.mozilla.org/en-US/docs/HTTP_access_control,其中在“概述”部分中说:
很难提供一个适用于所有WWW服务器的通用解决方案,因为设置将根据您打算支持的服务器本身和HTTP动词而有所不同。我建议您阅读这篇有关需要由服务器发送的确切标题的更多详细信息的优秀文章(http://www.html5rocks.com/en/tutorials/cors/)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |