我需要从另一个页面获取值。但我使用以下代码得到此错误。我该如何解决?
$(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);
}
});
});
});
答案 0 :(得分:17)
首先,您的设置对象格式不正确,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);
}
});
});
});
答案 1 :(得分:-2)
是跨域调用吗?你可能正在进入一个全新的痛苦世界? (Cross Domain Resource Sharing GET: 'refused to get unsafe header "etag"' from Response)当你这样做时。