web-dev-qa-db-ja.com

jquery Ajax urlパスの問題

Webサイトのメッセージシステムを設計しようとしていますが、ajaxを実行できません。だから私はファイル間の相互作用のより単純なバージョンを作ります。

以下は、test.phpとload.phpの両方がルートフォルダー(public_html)の下にある私のファイルです。

test.phpにajax関数があります。 load.phpは単に "wow"をエコーするだけです。

$("#test").click(function(){
 alert("Clicked.");

 $.ajax({
     url:"/load.php",
     type:"POST",
     beforeSend: function(){
         alert("testing");   
     },
     success:function(result){
        $("#result").html(result);
        alert("  sss  "+result);
     }
 }).error(function(){alert("wrong");});
 });

今では完全に動作します。

...........相対パスの設定方法...................

これはより複雑なデザインです

3つのファイル、すべて別のフォルダにあります:

  1. messages.php(ルートの下)
    • すべてのメッセージを表示
  2. control.php(ルート/パネル)
    • パネルはmessages.phpに含まれます
  3. load.php(ルート/関数)
    • control.phpはajaxを使用してそれを呼び出し、control.phpに結果を表示します

したがって、ユーザーがmessages.phpを読み込むと、control.phpが読み込まれ、ajax呼び出しcontrol.phpが実行されます。

私はajax用にこれらのパスを設定する方法についてとても混乱しています
(messages.phpにcontrol.phpを含めると正常に動作します)

ありがとう

7
user2372160

接続しようとしているファイルがルートにある場合は、/[file].phpを使用して、パス上のどのページが正しいかを確認できます。相対パスの問題があるようです。コンソールでエラーが発生しますか?

5
Alex

AjaxのURLを理解するには、常に覚えておくべきことが2つあります。

1. ajax urlの先頭にスラッシュを置くと、ajax urlパターンは `hostname/yourFile`の例になります:

// current url: http://sample.com/users
// ajax code load from users page

$.ajax({
   url: '/yourFile.php',
   ...
});

// ajax url will be: http://sample.com/yourFile.php

2.最初にスラッシュを使用しない場合、ajax urlはブラウザーの現在のURLに追加されます。例:

// current url: http://sample.com/users
// ajax code load from users page

$.ajax({
    url: 'yourFile.php',
    ...
});

//...ajax url will be http://simple.com/users/yourFile.php

これがajaxを使いたい人に役立つことを願っています。コーディングありがとうございます。

43
Sukma Saputra