微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery getResponseHeader总是返回’undefined’?

我有一个表单,我通过ajax提交。我正在使用jquery表单插件。我想要做的是获取从我的服务器返回的“位置”标头。我可以看到它在firebug。但是当我在成功回调中调用getResponseHeader()函数时,它总是返回’undefined’..

码:

form.ajaxForm({
  dataType: 'xml',data: {format: 'xml'},resetForm: true,success: function(xml,status,xhr){
    var location = xhr.getResponseHeader('Location');
    alert(location);
  });

位置未定义。但是我可以在firebug中看到“位置”标题。我失踪了什么即使我从xhr对象调用getAllResponseHeaders(),它返回’undefined’

解决方法

如果这是一个 CORS request,您可能会看到调试工具中的所有标头(例如Chrome-> Inspect Element-> Network),但是xHR对象只会检索标题(通过xhr.getResponseHeader(‘Header’))if这样的标题simple response header

>内容类型
>最后修改
>内容语言
>缓存控制
>到期
> Pragma

如果不在此集合中,则必须存在于服务器返回的Access-Control-Expose-Headers标头中。

关于这个问题,如果是CORS请求,那么只有在下面的标题中,只有当下面的标题出现时,才能检索XMLHttpRequest对象的Location头。

Access-Control-Expose-Headers: Location

如果它不是CORS请求,XMLHttpRequest将在检索它时没有问题。

原文地址:https://www.jb51.cc/jquery/181670.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐