4

私が取り組んできた簡単な質問ですが、修正できないようです。

ajax 呼び出しがありますが、php ファイルから応答が得られません。代わりに 404 をロードしているようです。

アドレス バーの URL は「mydomain.com/checkcity/」です。

ajax を含むファイルの場所は「/php/advert/script.php」です。

呼び出すphpファイルの場所は「/php/advert/available.php」

htaccess を使用して仮想 URL を使用しています。

これが私のajax呼び出しです:

    $.ajax({
        type: "POST",
        url: "/available.php",
        data: "city="+city,
        success: function(response){
        alert(response);
}
});

これが私のhtaccessファイルです:

    <IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

私が気づいたことの 1 つは、アドレス バーで URL を検索すると、ajax 呼び出しではなく、php ファイルが読み込まれることです。

現在、これをApache 2.2 localhostで実行しています

提案をありがとう。

4

2 に答える 2

3

404お使いのブラウザのエラー ログ/コンソールにエラー メッセージが表示されていると思いますか? また、リクエストが与えられた場合、次URLのようなレスポンスを返すも表示されているはずです。404http://www.mysite.com/available.php

問題

問題は、ajax 呼び出しのパラメーター/の先頭にa が含まれていることです。URLこれは、Web サイトのルート ドメインを示します (つまり、 を指しhttp://www.mysite.com/available.phpます)。

url: "/available.php",

解決

url パラメータを次の正しい URLs のいずれかに変更するだけです。

url: "http://www.mysite.com/php/advert/available.php",

また

url: "/php/advert/available.php",

また

url: "available.php",

また

url: "./available.php",

明確化のためのコード

$.ajax({
    type: "POST",
    url: "/php/advert/available.php",
    data: "city="+city,
    success: function(response){
        alert(response);
    }
});
于 2013-09-28T23:07:25.343 に答える
0

わかりましたので、これが時代遅れであることは知っていますが、なぜこれが起こっているのか答えようと思いました。私は他のことに移りましたが、これが最後の仕事だったので、実際には約30分しかかからなかった.

Ajax は chrome では URL に到達しませんでしたが、firefox では到達しました。次に、「adblock」がURLをブロックしていることがわかりました-これは、URLに「advert」が含まれていたためで、ファイルを移動して名前を変更するとすぐに機能しました.

誰かが同じような状況に陥った場合に備えて。

ありがとう

于 2014-03-29T01:39:02.317 に答える