2

例 1 の URL は で機能する$.getのに、例 2 の URL は機能しないのはなぜですか? 例 2 を機能させる方法はありますか?

例 1

$.get("http://localhost/magic/pages/tcgqueryoutput.php",
    function(data, statusTxt){
       $('#tcg_query_output').html(data);
    });

例 2

$.get("tcgqueryoutput.php",
    function(data, statusTxt){
       $('#tcg_query_output').html(data);
    });
4

2 に答える 2

2

例 2 は、現在のベース URL に基づいています。そのため、作業は Web アプリケーションの URL ルーティング/ディレクトリ構造に完全に依存しています。

編集:

この場合、次のルートをデフォルトにしようとしていると思います (ルート ディレクトリからルートがターゲットにされていると仮定します)。

http://localhost/tcgqueryoutput.php

したがって、正しく解決するには、相対 URL でさらに指定する必要があります。

于 2012-12-27T00:53:25.640 に答える
0

最初の例では、明示的なパス名を使用します。本番環境では、ルートからの明示的なパス名または完全修飾パスを使用することをお勧めします。2番目のアプローチが機能しない理由は、間違った場所からパス名を推測しているためだと思います。現在のロケールを取得してから、使用しているURLを追加します。これを変更するには、いくつかの可能性があります。通常、何が起こるかというと、サーバーがパスを通過することになります。

var serverPath = /*get value from server*/;

ただし、この値を明示的に入力することもできます。

var serverPath = "http://mydomain.com/";

これにより、それをベースとして使用できるようになります。

$.get(serverPath + "magic/pages/tcgqueryoutput.php",
function(data, statusTxt){
   $('#tcg_query_output').html(data);
});

サーバーからserverPathを渡した場合、これはローカルホストと本番環境の両方で機能することがわかります。これを手動で行う場合は、値をlocalhostからmydomain.comに変更する必要があります。

于 2012-12-27T01:12:33.557 に答える