在发出跨域 Ajax 请求时,如何设置 Angular 以发送正确的标头?
什么对我有用:
在尝试找到配置我的 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 域调用的域的逗号分隔列表,或“ ”表示所有域。allowMethods 允许的 HTTP 方法的逗号分隔列表,或全部为 null。allowCredentials 让浏览器在执行 x 域请求时发送 cookie。仅当 allowOrigin != " "时浏览器才会尊重
Http.Response.current().accessControl("*", "GET,PUT,POST,DELETE,OPTIONS",false);