gpt4 book ai didi

angularjs - angular.js $resources 设置授权头

转载 作者:行者123 更新时间:2023-12-03 17:50:08 25 4
gpt4 key购买 nike

js

我想要做的是向服务器发出 REST API REQUEST。

请求应该是“GET”方法并包含“Authorization” header 。

我与 REST 服务器通信的工厂代码是这样的
'使用严格';

angular.module('mabidualApp')
.factory('User', function ($resource, config) {

return $resource(config.API+':url/:id', {
url: '@url', id: '@id'
}, { //parameters default
auth: {
method: 'POST',
params: {
url: "token",
}
},
get: {
method: 'GET',
headers:{'Authorization':'Bearer oLDMYrJD0Qg15Nhv7N-H6w'} ,
params: {
url:"users",
id:'me'
}
}
});

最合适的问题在这里
headers:{'Authorization':'Bearer oLDMYrJD0Qg15Nhv7N-H6w'} ,

如果我添加标题,方法将更改为“选项”而不是“获取”。我发现它与 CORS 预检有关,但我不知道如何禁用它。

所以我试图在 app.js 中更改我的配置
  .config(function($locationProvider, $routeProvider, $httpProvider) {
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$httpProvider.defaults.headers.get['Authorization'] ='Bearer oLDMYrJD0Qg15Nhv7N-H6w';

第二个问题在这里
$httpProvider.defaults.headers.get['Authorization'] ='Bearer oLDMYrJD0Qg15Nhv7N-H6w';

它使下面的错误。
Cannot set property 'Authorization' of undefined

是否有任何解决方案可以发送带有“授权” header 的“GET”请求?
谢谢

最佳答案

我认为您在 get 请求中以错误的方式使用了 params。尝试像这样切换参数和标题:

angular.module('mabidualApp')
.factory('User', function ($resource, config) {

return $resource(config.API+':url/:id', {
url: '@url', id: '@id'
}, { //parameters default
auth: {
method: 'POST',
params: {
url: "token",
}
},
get_auth: {
method: 'GET',
params: {
url:"users",
id:'me'
},
headers: {'Authorization':'Bearer oLDMYrJD0Qg15Nhv7N-H6w'}
}
});

我更改了您的自定义获取请求,因为 'get' 可能已经由 angular 定义,但我不确定:
$httpProvider.defaults.headers.get_auth['Authorization'] ='Bearer oLDMYrJD0Qg15Nhv7N-H6w';

此外,您确定不需要任何其他标题吗?

关于angularjs - angular.js $resources 设置授权头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23803812/

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