You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery-Ajax调用中xhr.getResponseHeader('Location')返回null问题排查

问题原因及解决方案

嘿,我来帮你拆解这个问题——你遇到的情况其实是浏览器的CORS安全机制在起作用导致的:

  • 核心原因:浏览器的CORS策略默认只允许前端访问「简单响应头」(比如Cache-Control、Content-Type、Date这类),像Location这种不属于简单响应头的字段,必须由服务器明确授权才能被前端读取。你直接访问目标URL能看到Location头,是因为这种非跨域请求不受CORS的这个限制,但通过AJAX跨域请求时,浏览器会检查服务器是否返回了Access-Control-Expose-Headers头来允许前端获取Location,如果没有的话,就会把这个头隐藏起来,导致你调用xhr.getResponseHeader("Location")返回null。

  • 解决方案:需要让目标服务器在响应中添加Access-Control-Expose-Headers头,明确指定允许前端访问Location字段。比如服务器端需要配置类似这样的响应头:

    Access-Control-Expose-Headers: Location
    

    这样你的前端代码就能正常获取到Location头的值了。

另外补充一句:你在前端设置的withCredentials、crossDomain这些参数,主要是处理跨域请求的凭证和跨域标识问题,解决不了响应头的访问授权问题,这个必须由服务器端来配置。

内容的提问来源于stack exchange,提问作者Pritam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:38:01