由于 Angular JS 版本 1.1.1 不再需要删除标题。在https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet#Protecting_REST_Services:_Use_of_Custom_Request_Headers上提到了此更改
如 Josue 所示,这可以很容易地再次添加到所有请求中,如下所示:
angular.module('yourModule', [])
.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
}]);
将标头的配置设置为未定义以删除特定外部请求的标头。
let urlExternalValidator = 'https://openiban.com/validate/' + this.iban + '?getBIC=true&validateBankCode=true';
this.$http.get(urlExternalValidator, {
// simple request to not trigger a CORS preflight
// https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
headers: {
'X-Requested-With': undefined
}
})
此外,您可以在调用 $http(config) 时在传递的配置对象中提供 headers 属性,它会覆盖默认值而不全局更改它们。
要根据每个请求显式删除通过 $httpProvider.defaults.headers 自动添加的标头,请使用 headers 属性,将所需的标头设置为未定义
https://docs.angularjs.org/api/ng/service/ $http#setting-http-headers