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.idescolagrupont.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 - 向请求标头添加自定义参数的主要内容,如果未能解决你的问题,请参考以下文章

向 IMG、VIDEO 和 AUDIO 请求添加自定义标头

如何使用js或jQuery向ajax请求添加自定义HTTP标头?

TypeScript 在 Express 中添加自定义请求标头

与 qtwebkit 请求一起发送自定义标头

访问 API 中的自定义标头

使用自定义标头 ReactJS 获取 GET 请求