Satellizer 导致 Angular 使用 OPTIONS 请求预先执行我所有的其余查询
Satellizer causes Angular to pre-flight ALL of my rest queries with an OPTIONS request
如果所有服务器都响应一个 OPTIONS 请求,这将不是问题,但 Satellizer 甚至会导致 Angular 预先发送一个内容类型为 text/plain 的 GET 请求。实际上,它破坏了我一半的其他 REST 查询。
在查看代码并研究 Angualr 的 httpProvider 之后,我意识到 Sateliizer 正在使用 httpProvider 的拦截器数组拦截每个请求并添加以下内容:
var token = localStorage.getItem(tokenName);
if (token && config.httpInterceptor) {
token = config.authHeader === 'Authorization' ? 'Bearer ' + token : token;
httpConfig.headers[config.authHeader] = token;
}
这样每个请求都会获得授权 header。因为我实际上只有一个请求需要授权 header 我修改了条件语句:
if (token && config.httpInterceptor && httpConfig.auth===true) {
然后在我的 $http.get 中为实际需要授权的单个服务添加:
var config = {auth: true};
$http.get(googleUrl, config)
我使用 satellizer
库来管理授权。由于我还对第三方 API 进行 REST 调用,因此我不想包含 Authorization
header。在配置块中添加 skipAuthorization:true
解决了我的问题。例如:
(function () {
'use strict';
angular.module('weather')
.factory('weatherResource', ['$http', function ($http) {
return $http({
method: 'GET',
url: 'http://api.openweathermap.org/data/2.5/weather?q=Bangalore&appid=a50e83454ba54b9',
skipAuthorization: true
});
}]);
})();
祝你好运。
如果所有服务器都响应一个 OPTIONS 请求,这将不是问题,但 Satellizer 甚至会导致 Angular 预先发送一个内容类型为 text/plain 的 GET 请求。实际上,它破坏了我一半的其他 REST 查询。
在查看代码并研究 Angualr 的 httpProvider 之后,我意识到 Sateliizer 正在使用 httpProvider 的拦截器数组拦截每个请求并添加以下内容:
var token = localStorage.getItem(tokenName);
if (token && config.httpInterceptor) {
token = config.authHeader === 'Authorization' ? 'Bearer ' + token : token;
httpConfig.headers[config.authHeader] = token;
}
这样每个请求都会获得授权 header。因为我实际上只有一个请求需要授权 header 我修改了条件语句:
if (token && config.httpInterceptor && httpConfig.auth===true) {
然后在我的 $http.get 中为实际需要授权的单个服务添加:
var config = {auth: true};
$http.get(googleUrl, config)
我使用 satellizer
库来管理授权。由于我还对第三方 API 进行 REST 调用,因此我不想包含 Authorization
header。在配置块中添加 skipAuthorization:true
解决了我的问题。例如:
(function () {
'use strict';
angular.module('weather')
.factory('weatherResource', ['$http', function ($http) {
return $http({
method: 'GET',
url: 'http://api.openweathermap.org/data/2.5/weather?q=Bangalore&appid=a50e83454ba54b9',
skipAuthorization: true
});
}]);
})();
祝你好运。