Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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

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 ajax对代理的调用。。。只在第一次起作用_Jquery_Ajax - Fatal编程技术网

jQuery ajax对代理的调用。。。只在第一次起作用

jQuery ajax对代理的调用。。。只在第一次起作用,jquery,ajax,Jquery,Ajax,我正在使用我用PHP编写的本地代理脚本进行一些跨域Ajax调用。Ajax调用的Javascript代码(简化版)如下: <script src="jquery/jquery-1.10.2.min.js"></script> <script language="Javascript"> function link1 () { $.ajax ({url:"proxy.php", data:{url:"http://www.microsoft.com/"}

我正在使用我用PHP编写的本地代理脚本进行一些跨域Ajax调用。Ajax调用的Javascript代码(简化版)如下:

<script src="jquery/jquery-1.10.2.min.js"></script>

<script language="Javascript">
function link1 ()
{
    $.ajax ({url:"proxy.php", data:{url:"http://www.microsoft.com/"}})
        .done (function (h) { $("#ResponseBody").html(h); })
        .fail (function () { alert ("Ajax failed..."); });
}
function link2 ()
{
    $.ajax ({url:"proxy.php", data:{url:"http://www.yahoo.com/"}})
        .done (function (h) { $("#ResponseBody").html(h); })
        .fail (function () { alert ("Ajax failed..."); });
}
</script>

<a href="javascript:link1();">link 1</a><br>
<a href="javascript:link2();">link 2</a><br>

<div id="ResponseBody"></div>

函数link1()
{
$.ajax({url:proxy.php),数据:{url:http://www.microsoft.com/"}})
.done(函数(h){$(“#ResponseBody”).html(h)})
.fail(函数(){alert(“Ajax失败…”);});
}
函数link2()
{
$.ajax({url:proxy.php),数据:{url:http://www.yahoo.com/"}})
.done(函数(h){$(“#ResponseBody”).html(h)})
.fail(函数(){alert(“Ajax失败…”);});
}


所以,在这个例子中非常简单。我有两个函数,每个函数对我的代理脚本执行一个Ajax查询,并向它传递一个不同的远程URL。您可以单击其中一个链接来调用其中一个函数。无论我点击哪一个,它都会第一次起作用。但是当我第二次点击一个链接(同一个链接或另一个链接)时,它失败了

我确实尝试过删除显示Ajax结果的.done处理程序中的代码,但它突然开始工作,尽管不显示结果违背了执行Ajax查询的目的。我还尝试将代理脚本的引用替换为服务器上两个不同的纯HTML文件的引用,效果很好


有人知道为什么这些查询只在第一次时才起作用,而在那之后就不起作用了吗?

您能在浏览器中使用开发人员工具查看ajax请求吗?您所说的“失败”是什么意思?它是警告“Ajax失败…”还是只是不获取新数据?抱歉,我不清楚,是的,它会在单击第二个Ajax请求时警告“Ajax失败”。换句话说,它调用.fail处理程序。此外,我尝试在Firebug中查看它,第一个请求看起来很完美。第二个请求根本不会发出,所以它根本不会出现在Firebug中。我还发出了一个警报,以确保link1()和link2()函数被调用,而且确实如此。我想可能是缓存结果,因为我在这两种情况下都调用proxy.php,只是使用不同的参数。因此,我制作了一个名为proxy2.php的proxy.php副本,并在link2()函数中引用了它。同样的事情发生了。不管我先点击哪一个,第二个都会失败,提示“Ajax失败”……有人知道吗?我完全被难住了。。。