- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的项目中,我有一列包含多个带有 jQuery 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/
我是一名优秀的程序员,十分优秀!