gpt4 book ai didi

Angularjs + 拦截器 + 只为 http 请求添加查询参数(不是 html、js、css 文件)

转载 作者:可可西里 更新时间:2023-11-01 16:06:31 26 4
gpt4 key购买 nike

我正在使用 angularjs,在后端我检查每个已验证的 api。每个请求都应该检查参数access_token。

$provide.factory('MyHttpInterceptor', function($q, $location, $localStorage) {
return {
request : function(config) {
config.params = config.params || {};
if ($localStorage.access_token) {
config.params.access_token = $localStorage.access_token;
}
return config || $q.when(config);
},
};
});

// Add the interceptor to the $httpProvider.
$httpProvider.interceptors.push('MyHttpInterceptor');

我使用这段代码。效果很好,但是我在开发工具(网络)中看到html,css,js文件也添加了参数。喜欢。

http://localhost/webapp/views/template/left-menu.html?access_token=xxxxxxxxxxxxxxxxx
http://localhost/webapp/css/index.css?access_token=xxxxxxxxxxxxxxxxx

但我不喜欢向所有 http 请求(html、css、js)发送 access_token。

我喜欢为有前缀的 api 发送 access_token

http://localhost:9090/api/user/get?access_token=xxxxxxxxxxxxxxxxxxxxxx

//I think the solution is find the http url and grep the text api, if found means add the parameter. Don't konw this is good approach.

Please me the good approach.

我只希望后端 api 请求。此外,我不希望每个 serive http 请求都添加参数。

是否可以在配置中添加一个共同的地方?

最佳答案

您可以查看网址:

$provide.factory('MyHttpInterceptor', function($q, $location, $localStorage) {
return {
request : function(config) {
var apiPattern = /\/api\//;

config.params = config.params || {};

if ($localStorage.access_token && apiPattern.test(config.url)) {
config.params.access_token = $localStorage.access_token;
}
return config || $q.when(config);
}
};
});
// Add the interceptor to the $httpProvider.

$httpProvider.interceptors.push('MyHttpInterceptor');

关于Angularjs + 拦截器 + 只为 http 请求添加查询参数(不是 html、js、css 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37729804/

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