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>

したがって、この例では非常に単純です。2 つの関数があり、それぞれがプロキシ スクリプトに対して Ajax クエリを実行し、別のリモート URL を渡します。また、いずれかのリンクをクリックして、それらの関数のいずれかを呼び出すことができます。どちらをクリックしても、初めて機能します。しかし、2 回目にリンク (同じリンクまたは別のリンク) をクリックすると、失敗します。

Ajax の結果を表示する .done ハンドラーのコードを削除しようとしたところ、突然動作し始めましたが、結果を表示しないと Ajax クエリを実行する目的が無効になります。また、プロキシ スクリプトへの参照を、サーバー上の 2 つの異なるプレーン HTML ファイルへの参照に置き換えてみましたが、問題なく動作しました。

これらのクエリが最初にのみ機能し、その後は機能しない理由を知っている人はいますか?

4

0 に答える 0