AngularJs - 向请求标头添加自定义参数
Posted
技术标签:
【中文标题】AngularJs - 向请求标头添加自定义参数【英文标题】:AngularJs - Adding custom parameter to Request Header 【发布时间】:2015-12-18 11:06:40 【问题描述】:我在尝试发出 GET 请求时遇到了一点问题。
这就是我正在尝试的:
var config = headers:
'Authorization': 'Basic ZGllZ28uY2FsYXphbnNAZ3J1cG9udC5jb20uYnI6MTIz',
'grupont.auth.idescola':'409651',
'grupont.auth.usercontext':'blahblah@blah.com.br'
$http.get('http://localhost:8585/api/rest/contratosAdesao/cursosConsoleTO/29526757', config).success(function()).error(function());
我正在尝试从服务器获取一些基本信息。这是请求标头:
Accept:*/
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, authorization, get,grupont.auth.idescola, grupont.auth.usercontext
Access-Control-Request-Method:GET
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:8585
Origin:127.0.0.1:43013
Pragma:no-cache
Referer:127.0.0.1:43013/cursos.html
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36
我也将其作为通用标题:
Request Method:OPTIONS
Status Code:401 Unauthorized
grupont.auth.idescola
和 grupont.auth.usercontext
被添加到 Access-Control-Request-Headers
。
有谁知道它发生了什么?我正在尝试对服务器进行 CORS 调用,我需要在请求标头上发送一些参数。
非常感谢任何帮助。
【问题讨论】:
尝试添加withCredentials : true
标头。似乎您控制了远程服务,因此在那里调试以查看授权被拒绝的原因
嘿,谢谢你的消息,但我得到了同样的结果。
【参考方案1】:
所以,如果其他人有同样的问题,那么问题在于服务器 (jboss) 对 CORS 请求的响应。它必须正确响应预检 OPTIONS 请求。
如果我在标头请求中发送带有这些参数的 GET 请求:
'withCredentials':true,
'Authorization': 'Basic ZGllZ28uY2FsYXphbnNAZ3J1cG9udC5jb20uYnI6MTIz',
'grupont.auth.idescola':'409651',
'grupont.auth.usercontext':'blahblah@blah.com.br'
服务器需要响应:
Access-Control-Allow-Headers:grupont.auth.idescola,grupont.auth.usercontext,withCredentials,authorization
Access-Control-Allow-Origin:*
Allow:GET, OPTIONS, HEAD
然后该过程可以继续。
希望对某人有所帮助。
【讨论】:
以上是关于AngularJs - 向请求标头添加自定义参数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用js或jQuery向ajax请求添加自定义HTTP标头?