gpt4 book ai didi

AngularJS:$http拦截器将每个调用方法更改为选项

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:19 26 4
gpt4 key购买 nike

因此,我尝试拦截 http 调用,以在每个调用上添加授权 header (如果存在)。除了以下事实之外,这种方法效果很好:无论我使用哪种 http 方法(GET、POST、DELETE),它都会使用 OPTIONS 方法发送请求。我究竟做错了什么?

服务器是带有restify的nodejs。

angular.module('mymodule').factory('RequestService', function () {
var token = null;

var service = {
setToken: function setToken(_token) {
token = _token;
},

getToken: function getToken() {
return token;
},

request: function request(config) {
if (token) {
config.headers['Authorization'] = 'Token' + token;
}
return config;
}

}

return service;
}).config(function($httpProvider) {
$httpProvider.interceptors.push('RequestService');
}

最佳答案

当你在前端实现自己的拦截器时,你应该记住 CORS:

app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', req.headers.origin || "*");
res.header('Access-Control-Allow-Methods', 'GET,POST,PUT,HEAD,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', 'content-Type,x-requested-with,authorization123456,accept');
next();
});

我们应该记住在方法和 header 上设置 Access-Controll-Allow。就我而言,它是“authorization123456”,我将 token 添加到来自 AngularJS 的每个请求中。

关于AngularJS:$http拦截器将每个调用方法更改为选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27800129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com