Eun*_*ang 5 http-headers angularjs preflight
JS
我正在尝试做的是为服务器提供REST API REQUEST.
请求应为'GET'方法并包含'Authorization'标头.
我的工厂代码与REST服务器通信就像这样'use strict';
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'
}
}
});
Run Code Online (Sandbox Code Playgroud)
最合适的问题在这里
headers:{'Authorization':'Bearer oLDMYrJD0Qg15Nhv7N-H6w'} ,
Run Code Online (Sandbox Code Playgroud)
如果我添加标题,方法将更改为"OPTIONS"而不是"GET".我发现它是关于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';
Run Code Online (Sandbox Code Playgroud)
第二个问题在这里
$httpProvider.defaults.headers.get['Authorization'] ='Bearer oLDMYrJD0Qg15Nhv7N-H6w';
Run Code Online (Sandbox Code Playgroud)
它会出现以下错误.
Cannot set property 'Authorization' of undefined
Run Code Online (Sandbox Code Playgroud)
是否有任何解决方案可以使用'授权'标题发送''GET'请求?谢谢
我认为您在获取请求中以错误的方式使用参数。尝试像这样切换参数和标题:
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'}
}
});
Run Code Online (Sandbox Code Playgroud)
我更改了您的自定义获取请求,因为“获取”可能已经由角度定义,但我不确定:
$httpProvider.defaults.headers.get_auth['Authorization'] ='Bearer oLDMYrJD0Qg15Nhv7N-H6w';
Run Code Online (Sandbox Code Playgroud)
此外,您确定不需要任何其他标头吗?
| 归档时间: |
|
| 查看次数: |
7963 次 |
| 最近记录: |