0

サンプルの Ajax やその他の関数から JavaScript 内でファイルを呼び出すと、JavaScript は baseURL やルートからではなく、現在のアドレスを基準にしてファイルを呼び出そうとします。

domain.com/my-page/ にいて、次を使用して php ファイルを呼び出そうとした場合の例

$.post('ajax/class.designer.php', { action: 'getcard', cardID: id },
        function(data) {
            loadCard(data)
        }, "json");

実際に domain.com/ajax/class.designer.php を呼び出したいときに、 domain.com/my-page/ajax/class.designer.php を呼び出そうとします。

CKEditor などのプラグインと同じで、現在のアドレスに関連する .css ファイルを呼び出そうとします。

アプリケーションは mod_rewrite とわかりやすい URL を使用しています。すべてが / にある index.php にリダイレクトされ、index.php から関数を呼び出してページを表示します。

RewriteBase / を設定し、HTML ヘッドで baseurl をルート パスに設定しました。

注: ローカルホストで実行しているときは、すべて正常に機能しました。問題は、ライブサーバーに移動したときに始まりました。

4

2 に答える 2

3

ajax の前にスラッシュを置き/ajaxます。スラッシュをオフのままにすると、相対パス、つまり現在地からの相対パスが取得されます。絶対パスを取得するには、常に/.

于 2013-06-04T18:02:54.920 に答える
0

上記の答えの代わりに、head に base タグを追加することもできます。これにより、すべての相対パスの開始位置がブラウザに通知されます。特定の問題について、次のように追加します。

<base href="http://domain.com">

これにより、追加する相対 URL がルートから始まることになります。

于 2013-06-05T11:14:12.657 に答える