Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery:在成功函数中获取url_Jquery_Ajax - Fatal编程技术网

jQuery:在成功函数中获取url

jQuery:在成功函数中获取url,jquery,ajax,Jquery,Ajax,我希望在jQuery从服务器检索数据之后,从jQuery成功函数获取url。不幸的是,success函数采用的三个参数没有公开原始url: success:function(数据、状态文本、jqhxr) 我转储了jqhxr变量,在其中找不到url。我需要url的原因是因为我通过一个循环同时进行了几个调用,因此我不知道会返回哪个Ajax调用。将其设置为异步调用也无济于事 提前谢谢你 你是说打同步电话没用 我的建议是,如果要循环执行一系列AJAX调用,则在返回的数据中设置一个参数,以确定如何处理它。

我希望在jQuery从服务器检索数据之后,从jQuery成功函数获取url。不幸的是,success函数采用的三个参数没有公开原始url:

success:function(数据、状态文本、jqhxr)

我转储了jqhxr变量,在其中找不到url。我需要url的原因是因为我通过一个循环同时进行了几个调用,因此我不知道会返回哪个Ajax调用。将其设置为异步调用也无济于事


提前谢谢你

你是说打同步电话没用


我的建议是,如果要循环执行一系列AJAX调用,则在返回的数据中设置一个参数,以确定如何处理它。但实际上,您必须循环执行多个调用如果操作正确,您应该能够发送足够的参数和数据,以便在一次调用中全部返回,这减少了客户端和服务器、服务器和数据库之间的往返次数,然后服务器返回到客户端。

在进行ajax调用时,您可能会使用上下文

$.ajax({
  url: "test1.html",
  context: $("#call1")
});

$.ajax({
  url: "test2.html",
  context: $("#call2")
});

<div id="call1" class="hidden" data-url="whatever1"></div>
<div id="call2" class="hidden" data-url="whatever2"></div>

这样你就可以得到任何数据,而不仅仅是url。将要访问的任何数据放入相应的div元素。

如果通过jQuery.ajax()或.post()或.get()调用服务器脚本,则即使使用循环,成功回调函数中也必须有可用的url。这是因为您必须将url传递给这三个方法,并且返回的结果特定于您传递的url

例如:

for(var i=0; i<10; i++) {
    url = "action_remote_" + i + ".php";
    $.ajax({
        type:'POST',
        url: url,
        data:$('#' + str_form_id).serialize(),
        success: function(response) {
            alert(url);
        }
    });
}

for(var i=0;i
此.url
内部成功函数将起作用,因为
引用函数的当前上下文,并且由于成功函数是传递给
.ajax()
的设置对象的一部分,它将访问url属性


请参阅一篇描述和的文章。

我感觉您在这里走错了路(1个处理所有ajax返回的函数),但您不能将从服务器返回的页面名称包含在JSON中吗?您可以转储console.log(this)的“this”变量吗?+1;注释
for(var i=0; i<10; i++) {
    url = "action_remote_" + i + ".php";
    $.ajax({
        type:'POST',
        url: url,
        data:$('#' + str_form_id).serialize(),
        success: function(response) {
            alert(url);
        }
    });
}