【问题标题】:getResponseHeader is not a functiongetResponseHeader 不是函数
【发布时间】:2011-01-27 12:28:22
【问题描述】:

我需要从另一个页面获取值。但是我使用以下代码收到此错误。我该如何解决?

    $(document).ready(function() { 
        $("[name='submit']").click(function() { 
            $.ajax({
                type: "POST",
                data: $(".form-signup").serialize(),
                url: "external.asp", 
                success: function(output) { 
                alert(output.getResponseHeader("Content-Length"));
},
                error: function(output) {
                $('.sysMsg').html(output);
                }
            }); 
        }); 
    }); 

【问题讨论】:

    标签: jquery


    【解决方案1】:

    首先,您的设置对象格式不正确,success 函数没有终止。

    编辑:看来你使用的是jQuery 1.3.x,如果是,$.ajax函数本身返回XHR对象:

    $(document).ready(function() { 
        $("[name='submit']").click(function() { 
            var xhr = $.ajax({
                type: "POST",
                data: $(".form-signup").serialize(),
                url: "external.asp", 
                success: function(output, status) { 
                  alert(xhr.getResponseHeader("Content-Length"));
                },
                error: function(output) {
                  $('.sysMsg').html(output);
                }
            }); 
        }); 
    });
    

    对于 jQuery 1.4+ 版本:

    然后,当success回调它执行的三个参数被传递(success(data, textStatus, XMLHttpRequest)),你需要在XmlHttpRequest对象上调用getResponseHeader,第三个参数:

    $(document).ready(function() { 
        $("[name='submit']").click(function() { 
            $.ajax({
                type: "POST",
                data: $(".form-signup").serialize(),
                url: "external.asp", 
                success: function(output, status, xhr) { 
                  alert(xhr.getResponseHeader("Content-Length"));
                },
                error: function(output) {
                  $('.sysMsg').html(output);
                }
            }); 
        }); 
    });
    

    【讨论】:

    • 好吧,我知道为什么它对我不起作用了。我还在使用 jquery 1.3.2
    • 拯救了我的一天 :)
    【解决方案2】:

    是跨域调用吗?你可能正在进入一个全新的痛苦世界? (Cross Domain Resource Sharing GET: 'refused to get unsafe header "etag"' from Response) 当你这样做时。

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 2012-05-25
      • 2011-11-19
      • 2012-01-29
      • 2017-05-09
      • 2017-05-06
      • 2019-12-20
      • 1970-01-01
      • 2021-12-04
      相关资源
      最近更新 更多