Angular 为特定端点设置 headers angular 1
Angular set headers for specific endpoints angular 1
我四处寻找,但找不到适合我的东西。
我有 2 个端点,一个用于我有权访问的后端,另一个用于外部服务。
在我的 .运行 中,我有一个拦截器,它将此 header 添加到对我的服务器发出的每个请求
$http.defaults.headers.common['Authorization'] = 'JWT' + ' ' token';
外部服务api。
service('CorsRequest', function ($http) {
var baseUrl = 'https://min-api.cryptocompare.com/';
this.get = function (endpoint) {
return $http.get(baseUrl + endpoint, { headers: {"Content-Type": 'text/plain'}});
}
this.post = function (endpoint, postData) {
return $http.post(baseUrl + endpoint, postData);
}
})
第二个端点 returns 向 api 发出请求时出现预检错误,因为已将 Authorization
header 添加到其中。
如何检查请求是否发送到我的服务器,添加授权 header,如果没有则忽略。
这是我按照 Slava 的建议使用 http 拦截器进行修复的方法。
为它创建了一个工厂并使用注入器获取我创建的服务来使用它。
.factory('ApiInterceptor', function($localStorage, $injector){
console.log('here')
return {
request: function(config) {
var UserService = $injector.get('UserService');
if(config.url.indexOf(BASE_URL) > -1) {
config.headers['Authorization'] = 'JWT' + ' ' + UserService.getCurrentUserToken() ;
}
// console.log(config)
return config;
},
response: function(response) {
// console.log(response.data);
return response;
}
}
})
然后添加配置。
.config(function($httpProvider) {
$httpProvider.interceptors.push('ApiInterceptor');
})
我四处寻找,但找不到适合我的东西。 我有 2 个端点,一个用于我有权访问的后端,另一个用于外部服务。
在我的 .运行 中,我有一个拦截器,它将此 header 添加到对我的服务器发出的每个请求
$http.defaults.headers.common['Authorization'] = 'JWT' + ' ' token';
外部服务api。
service('CorsRequest', function ($http) {
var baseUrl = 'https://min-api.cryptocompare.com/';
this.get = function (endpoint) {
return $http.get(baseUrl + endpoint, { headers: {"Content-Type": 'text/plain'}});
}
this.post = function (endpoint, postData) {
return $http.post(baseUrl + endpoint, postData);
}
})
第二个端点 returns 向 api 发出请求时出现预检错误,因为已将 Authorization
header 添加到其中。
如何检查请求是否发送到我的服务器,添加授权 header,如果没有则忽略。
这是我按照 Slava 的建议使用 http 拦截器进行修复的方法。
为它创建了一个工厂并使用注入器获取我创建的服务来使用它。
.factory('ApiInterceptor', function($localStorage, $injector){
console.log('here')
return {
request: function(config) {
var UserService = $injector.get('UserService');
if(config.url.indexOf(BASE_URL) > -1) {
config.headers['Authorization'] = 'JWT' + ' ' + UserService.getCurrentUserToken() ;
}
// console.log(config)
return config;
},
response: function(response) {
// console.log(response.data);
return response;
}
}
})
然后添加配置。
.config(function($httpProvider) {
$httpProvider.interceptors.push('ApiInterceptor');
})