jquery getResponseHeader总是返回’undefined’?

前端之家收集整理的这篇文章主要介绍了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将在检索它时没有问题。

猜你在找的jQuery相关文章