gpt4 book ai didi

javascript - Ajax 和 readyState

转载 作者:行者123 更新时间:2023-11-30 17:49:40 33 4
gpt4 key购买 nike

我正在尝试更新我的 ajax 请求函数以显示响应的各个状态。

然而,我在发送请求后得到的只是 readyState = 1,然后它直接跳转到 readyState = 4,我从服务器得到了完整的响应。

为什么我没有得到 readyStates 2 和 3?

当我尝试使用 native 浏览器时,例如

xmlhttp2 = new XMLHttpRequest()

发送相同的请求让我在回调中得到 readyStates 1、2、3 和 4:

xmlhttp2.onreadystatechange

但是 JQuery ajax 辅助函数没有。为什么会这样?

这是我的代码:

var jqXHR = $.ajax(
{
data: requestForm, //my json request
type: req_type, // could be post or get
url: script, // php script
async: true,
success: function(response,textStatus, xhr)
{
renderIt(response);
},

error: function( xhr, textStatus, errorThrown )
{
var errText = "<b>Error "+xhr.status+" : "+xhr.reponseText+" , "+textStatus+", "+errorThrown+" </b>";
$('#'+div).append(errText);
}
});

jqXHR.fail(function( data, textStatus, jqXHR )
{
var errText = "<b>Error "+jqXHR.status+" : "+jqXHR.reponseText+" , "+textStatus+", "+" </b>";
$('#'+div).html(errText);
});

switch(jqXHR.readyState)
{
case 1:
$('#'+div).html("\n<center> Connected to Server...<br/> <img src='images/loading.gif' height=30 width=30></center>\n");
break;
case 2:
$('#'+div).html("\n<center> Request Recieved...<br/> <img src='images/loading.gif' height=30 width=30></center>\n");
break;
case 3:
$('#'+div).html("\n<center> Receiving Responses.....<br/> <img src='images/loading.gif' height=30 width=30></center>\n");
$('#'+div).append(xhr.responseText);
break;
default:
$('#'+div).html("\n<center> Awaiting Results.."+jqXHR.readyState+"<br/> <img src='images/loading.gif' height=30 width=30></center>\n");
break;
}

最佳答案

在 jQuery 中你只能得到 1 和 4,因为它的成功回调只有在 ajax 请求完成后才会触发,并且 it does not expose a callback for the readystatechange event .

因此,如果出于某种原因您需要能够对此事件进行一些处理,您将需要直接使用 XMLHttpRequest。

关于javascript - Ajax 和 readyState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19324402/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com