gpt4 book ai didi

jquery - 如何在 jQuery Ajax 调用后检索 XHR 参数?

转载 作者:行者123 更新时间:2023-12-01 02:36:40 25 4
gpt4 key购买 nike

在我的项目中,我有一列包含多个带有 jQ​​uery Ajax 调用的过滤器,以减少 main.php <div id="target"> 中显示的产品数量。 。工作正常,但是在对结果进行排序或单击响应文件 main.php 中的分页之后,我需要能够使用最后一次 Ajax 调用 main.php 的 $_GET 参数在过滤器列中执行新的过滤操作。 。这些参数在 Firebug 选项卡 Net - 选项卡 XHR - 选项卡参数中显示良好。

但是我找不到一种方法来检索参数并将它们放入触发 Ajax 调用的函数中:

     function updateStatus(content_show, data) {

jQuery.ajax({
method: "get",
url: content_show,
data: data,
beforeSend: function(){
jQuery("#target").html('<p><img src="images/ajax_load.gif" /></p>');
}, //show loading just when link is clicked
success: function(html) {

// update status element
jQuery('#target').show("slow");
jQuery('#target').html(html);
}

});
}

在我的过滤器文件中,我有一个函数来检查和取消选中复选框并启动 ajax 调用:

function check_them(obj,URL) {
var getstr = "";
var man_id_selected ="";

for (i=0; i<obj.getElementsByTagName("input").length; i++) {
if (obj.getElementsByTagName("input")[i].type == "checkbox") {

if (obj.getElementsByTagName("input")[i].checked) {

getstr = "" + obj.getElementsByTagName("input")[i].name + "=";
man_id_selected += obj.getElementsByTagName("input")[i].value + "_";
} else {
<!-- getstr += obj.getElementsByTagName("input")[i].name + "=&";-->
}
}

}
getUrlStatus('main.php', function(status) { // try to find $_GET parameters of main.php
alert(status);
});
updateStatus(URL, getstr+man_id_selected);
}

在这里我还尝试通过以下方式查找 XHR 参数:

 function getUrlStatus(url, callback) {
jQuery.ajax({
url: url,
complete: function(xhr) {
callback(xhr.status);

}
});
}

但后者当然只会返回 Status 200 而不是参数。

编辑

经过更多的阅读和测试,我几乎通过更改原始 PHP 代码和函数来解决问题,以便使用回调正确格式化函数 updateStatus:

     function updateStatus(url, base_url, new_parameters, old_parameters) {

jQuery.ajax({
method: 'get',
url: base_url,
data: new_parameters,
beforeSend: function(){
jQuery("#target").html('<p><img src="images/ajax_load.gif" /></p>');
}, //show loading just when link is clicked
complete: function(){
jQuery("#target").hide("fast");
}, //stop showing loading when the process is complete


success: function(html) {
// update status element
jQuery('#target').show("slow");
jQuery('#target').html(html);
callback(this.url)
}
});
}

现在我只在 PHP 中检索和调用 $url 的新 url 时遇到了一些小问题。我将对此进行详细说明,并可能发布一个新主题。

最佳答案

为了将来的引用,如果您使用的是 jQuery 1.4+,成功函数实际上接受 3 个参数,只是后两个是可选的,而 data 通常是唯一需要的。

success(data, textStatus, XMLHttpRequest):Function

A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the 'dataType' parameter; a string describing the status; and the XMLHttpRequest object (available as of jQuery 1.4). This is an Ajax Event.

因此,下次如果您需要获取有关 XHR 响应的更多信息,您可以像这样设置成功函数:

success: function(data, status, xhr) {
// tests with status and xhr, etc...
}

关于jquery - 如何在 jQuery Ajax 调用后检索 XHR 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735593/

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