angularjs – 无法在$http响应中以角度访问’WWW-authenticate’
任何人都可以告诉我为什么我的’WWW-Authenticate’标题在响应中为空,尽管我能够在Chrome开发工具中看到字符串化的’WWW-Authenticate’标题对象?
在服务器端,我正在执行以下操作来设置我的WWW-Authenticate标头以及为CORS设置正确的标头: res.setHeader('Access-Control-Allow-Origin','http://localhost:8080'); res.setHeader('Access-Control-Expose-Headers','WWW-Authenticate'); res.setHeader('WWW-Authenticate',JSON.stringify({ "token": "encryptedToken","message": "encryptedMessage" })); 我相信我正在服务器端正确设置标头,因为当我查看Chrome开发工具时,我会在“响应标头”下看到正在进行的请求的以下内容. 响应标题 但是,当我尝试从响应中访问“WWW-Authenticate”标头时,我得到NULL. $http.get("http://localhost:4242/days") .then(function (response) { var AuthHeader = response.headers('WWW-Authenticate'); console.log (AuthHeader); // returns null }) 提前谢谢你的帮助! 解决方法
好的…经过一些试验和错误后我们已经想到了这一点.虽然我有预先挂起的X-自定义标题是一个过时的和不必要的paractive,但是看起来无论是在这种情况下使用的浏览器还是角度本身都期望它.
更改标题名称: WWW-authenticate 至 X-WWW-authenticate 解决了这个问题.如果有人能说清楚这一点,请做. 事实上,在这里引用第一个答案:Custom HTTP headers : naming conventions,X-的使用已经被弃用,实际上标题应该只是’明智地命名’没有任何前缀.也许考虑重命名为: appName-authenticate 或类似的最佳做法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |