【发布时间】:2011-09-09 09:35:25
【问题描述】:
我正在使用使用 jQuery 1.2.6 的旧系统。我正在通过 jQuery.ajax 函数发送 AJAX 请求。它所命中的 URL 正在发送 302 HTTP Redirect 响应,最终以 200 HTTP OK 响应结束。我已经注册了 success 和 complete 回调,但是它们都没有被调用。
我的问题是:在重定向发生后是否可以/将会调用任何回调?
jQuery.ajax({
type: "GET",
url: url,
data: null,
dataType: "json",
async: false,
success: function(data, textStatus) {
alert("SUCCESS CALLED: " + textStatus);
},
complete: function(xhr, status) {
alert("COMPLETE CALLED");
}
});
注意:响应是 HTML,而不是 JSON,但是将 dataType 更改为 html 会改变请求。它发送OPTIONS 请求而不是GET 请求,并且它也不再重定向。我需要这些重定向发生。
【问题讨论】:
-
您有权访问服务器代码吗?浏览器透明地处理 302 响应,但是当收到 200 状态码时,您的成功函数最终应该被调用。
-
嗨,本,感谢您的帮助。我无权访问服务器代码。关于
success回调,我有一个alert调用作为一个简单的测试。通过 Firebug 发出 XHR 请求后,一旦命中 200,就不会显示任何警报对话框。 -
你能发布一些代码吗?从服务器发送的响应数据是否与您的 ajax 调用中指定的数据类型相同?
-
添加了上面的代码。响应是 HTML,而不是 JSON。将
dataType更改为html会更改请求。它发送OPTIONS请求而不是GET请求,并且它也不再重定向。
标签: jquery redirect jquery-callback