Angularjs和HTTP标头

时间:2016-05-16 12:26:01

标签: angularjs ajax apache http http-headers

每次发出任何请求时,我都希望将自定义HTTP标头发送到REST服务。我正在使用Apache HTTP Web Server。我有以下代码:

app.config(['$httpProvider', function($httpProvider){

if(!$httpProvider.defaults.headers.get){
    $httpProvider.defaults.headers.get = {};
}

$httpProvider.defaults.headers.get['My-Token'] = 'some_test_token';
}]);

但我在devtools中看到了下一个:

enter image description here

我的标题内嵌到其他内容中。我做错了什么?

2 个答案:

答案 0 :(得分:0)

您提供的屏幕截图处理OPTIONS请求,而您正在配置GET请求。 OPTIONS请求作为HTTP中内容协商实现的一部分发送。

在这种情况下,您要发送预检OPTIONS请求,这反过来表明您的未来请求将包含my-token标头。这是期望的行为,因为服务器现在可以指示客户端不继续执行此请求或执行条件操作。

在您的浏览器(或您用于调试HTTP的其他软件)中,查找GET请求,您应该看到正确包含的标头。

答案 1 :(得分:0)

AngularJS方面的麻烦并非如此。我只是配置Apache HTTP服务器和我的应用程序的后端部分。我的Spring Security过滤器链阻止了OPTIONS请求。