首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery getResponseHeader总是返回'undefined‘吗?

jquery getResponseHeader总是返回'undefined‘吗?
EN

Stack Overflow用户
提问于 2010-12-07 03:07:15
回答 1查看 25.5K关注 0票数 16

我有一个表格,我通过ajax提交。我使用的是jquery表单插件。我正在尝试做的是获取从我的服务器返回的'Location‘头。我可以在firebug中看到它。但是每当我在成功的回调中调用getResponseHeader()函数时,它总是返回‘undefined’。

代码:

代码语言:javascript
复制
form.ajaxForm({
  dataType: 'xml',
  data: {format: 'xml'},
  resetForm: true,
  success: function(xml,status,xhr){
    var location = xhr.getResponseHeader('Location');
    alert(location);
  });

位置未定义。但我可以在firebug中看到'Location‘头。我遗漏了什么?即使我从xhr对象调用getAllResponseHeaders(),它也会返回'undefined‘

EN

回答 1

Stack Overflow用户

发布于 2011-03-01 03:07:18

我正在做一些类似的事情,使用rails/rest的方法,返回一个201 "created“,其中包含一个Location头和一个空的主体。当遇到这个问题时,jQuery的ajax方法会抛出一个"parseerror“,因为它需要json,但是什么也得不到。我只是在错误回调中捕获201重定向,如下所示:

代码语言:javascript
复制
function request_error(req, textStatus, errorThrown) 
{
    if (req.status == 201 ) {
        var created_loc = req.getResponseHeader('Location');
        console.log('(201) created: ' + created_loc);

        // ... manual redirect here i.e. issue another ajax request to created_loc
        return;
    }

    // ... handle an actual error here
}

希望这能有所帮助!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4369987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档