2

サンプルの URL Web サイトがあります: http://mysite.com/

 var host = window.location.protocol+"//"+window.location.hostname;

$.ajax({
   type:"POST",
   data: params,
   url : host+'/forms/get_data.php',
   success:function(data){
       ...othercodeblahblah
   }
});

firebug をチェックしようとすると、URL がおかしくなるのはなぜですか。

これは、firebug の出力例です。

http://mysite.com/mysite.com/forms/get_data.php

この URL を使用すると、次のようになります。

"NetworkError: 404 Not Found -  http://mysite.com/mysite.com/forms/get_data.php"

http://mysite.com/forms/get_data.phpのように出力すべきではありませんか? 間違った URL パスが表示されるのはなぜですか?

あなたの助けは非常に高く評価され、報われるでしょう!

感謝!

4

2 に答える 2

3

このようなエラーがどこから発生するのかはわかりませんが、ホストを指定するのは冗長です: AJAX リクエストはとにかく同じドメインであるため (特に構成されていない限り)、ルートから一部を指定するだけです:

url: "/forms/get_data.php",
于 2012-09-06T15:22:04.983 に答える
3

理由にはwindow.location.protocolすでにコロン (:) が含まれています。

そのhostための変数には次が含まれますhttp:://mysite.com

jQuery は、完全な有効な URL が渡されなかったことを検出し、ホスト名を自動的に追加します。

修正が変わります

var host = window.location.protocol+"://"+window.location.hostname;

var host = window.location.protocol+"//"+window.location.hostname;

編集

あなたのコードで jsfiddle を作成しました: http://jsfiddle.net/xH5ZV/

および修正コード: http://jsfiddle.net/xH5ZV/1/

修正されたコードでは、ホスト名を 2 回取得していないことに注意してください。

于 2012-09-06T15:36:57.630 に答える