Angularjs 和 HTTP headers
Angularjs and HTTP headers
我想在每次发出任何请求时将我的自定义 HTTP header 发送到 REST 服务。我正在使用 Apache HTTP Web 服务器。我有以下代码:
app.config(['$httpProvider', function($httpProvider){
if(!$httpProvider.defaults.headers.get){
$httpProvider.defaults.headers.get = {};
}
$httpProvider.defaults.headers.get['My-Token'] = 'some_test_token';
}]);
但我在开发工具中看到了下一个:
我的 header 内联到其他。我做错了什么?
您提供的屏幕截图处理的是 OPTIONS 请求,而您正在配置 GET 请求。 OPTIONS 请求作为 HTTP 内容协商实施的一部分发送。
在这种情况下,您将发送预检 OPTIONS 请求,这反过来表明您未来的请求将包含 my-token
header。这是期望的行为,因为服务器现在可以指示客户端不要继续此请求或执行条件操作。
在您的浏览器(或您用来调试 HTTP 的其他软件)中,查找 GET 请求,您应该会看到您的 header 已正确包含。
问题不在AngularJS这边。我只是配置 Apache HTTP 服务器和我的应用程序的后端部分。我的 Spring 安全过滤器链阻止了 OPTIONS 请求。
我想在每次发出任何请求时将我的自定义 HTTP header 发送到 REST 服务。我正在使用 Apache HTTP Web 服务器。我有以下代码:
app.config(['$httpProvider', function($httpProvider){
if(!$httpProvider.defaults.headers.get){
$httpProvider.defaults.headers.get = {};
}
$httpProvider.defaults.headers.get['My-Token'] = 'some_test_token';
}]);
但我在开发工具中看到了下一个:
我的 header 内联到其他。我做错了什么?
您提供的屏幕截图处理的是 OPTIONS 请求,而您正在配置 GET 请求。 OPTIONS 请求作为 HTTP 内容协商实施的一部分发送。
在这种情况下,您将发送预检 OPTIONS 请求,这反过来表明您未来的请求将包含 my-token
header。这是期望的行为,因为服务器现在可以指示客户端不要继续此请求或执行条件操作。
在您的浏览器(或您用来调试 HTTP 的其他软件)中,查找 GET 请求,您应该会看到您的 header 已正确包含。
问题不在AngularJS这边。我只是配置 Apache HTTP 服务器和我的应用程序的后端部分。我的 Spring 安全过滤器链阻止了 OPTIONS 请求。