如何设置Angular以在发出跨域Ajax请求时发送正确的标头?
对我有用的是什么:
经过大约一整天的努力寻找配置我的Angular应用程序以使用CORS的答案后,我终于想出了一个有效的解决方案!假设您已正确设置服务器 - 您在客户端上唯一需要做的就是删除应用程序配置中的默认标头。
angular.module('myApp').config(['$httpProvider', function($httpProvider) {
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
X-Requested-With标头将请求标识为AJAX请求 - 默认情况下不允许跨域。所以我们需要做的就是从我们的默认设置和BOOM中删除它!有用。
对于我们的应用程序,我们使用播放后端(1.2.5) - 我们需要添加的代码行是:
添加标头以允许跨域请求。请注意,许多浏览器不支持这些功能,并会忽略标头。请参阅浏览器的文档以了解支持它们的版本。
参数: allowOrigin允许执行x-domain调用的逗号分隔域列表,或者所有的“”。 allowMethods允许的逗号分隔的HTTP方法列表,或者为所有的null。 allowCredentials让浏览器在执行x-domain请求时发送cookie。只有allowOrigin!=“”
才能被浏览器尊重Http.Response.current().accessControl("*", "GET,PUT,POST,DELETE,OPTIONS",false);