2

jQuery関数とPHPスクリプトを含む「js」フォルダーがあります。別のフォルダーに HTML ファイルがあります。したがって、これは今までの構造です:

/server/js/global.js /server/js/script.php /server/html/student.html _
_ _

JavaScript コードは HTML から呼び出され、正常に動作しますが、jQuery post 関数は PHP スクリプトを呼び出しません。

HTML ファイルを 'js' フォルダーに移動すると、完全に機能し、PHP スクリプトは正常に呼び出されます。

なぜこれが起こるのですか?


つまり、次のパスで表されるパスは何ですか?

$.post('script.php',...);

JavaScript フォルダーまたは HTML フォルダーからファイルを呼び出していますか?

4

2 に答える 2

3

問題は、呼び出している Javascript ファイルglobal.jsが、すべての Javascript ファイルが使用するパス (その時点で表示している Web ページに関連するパス) を使用している可能性があります。これが問題 (相対パスなど) であるかどうかを確認し、パスが相対パスではなく絶対パスであることを確認してください。たとえば、global.jsでは次のように記述されています。

    $.post(
        'script.php',
        { nameValue: name.value },

次のように変更します。

    $.post(  
        '/path/to/file/script.php',  
        { nameValue: name.value },

例として、あなたの場合は次のようになります。

    $.post(  
        '/server/js/script.php',  
        { nameValue: name.value },

絶対パスは表示ファイルの場所に依存しないため、global.js を呼び出すどのような場合でもこの方法で機能します。また、html ファイルを配置する任意の場所に適応するため、将来ファイルを編集する必要はありません (絶対パスが常に同じ場所にあると仮定します)。

于 2013-07-04T23:16:08.913 に答える
2

HTML ファイルから JS コードを呼び出す方法によって異なりますが、次のような JQuery 投稿を使用してみてください。

$.post('../js/script.php', function(data) { } );
于 2013-07-04T23:09:59.963 に答える