0

我正在使用我用 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>

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

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

有谁知道为什么这些查询只能在第一次工作,而不是在那之后?

4

0 回答 0