Ajax没有找到网址

时间:2013-09-28 22:33:55

标签: php ajax .htaccess url

我一直在努力解决这个问题,但似乎无法解决问题。

我有一个ajax调用,但它没有得到php文件的响应,它似乎正在加载404。

地址栏中的网址是“mydomain.com/checkcity /”

带有ajax的文件的位置是“/php/advert/script.php”

要调用的php文件的位置是“/php/advert/available.php”

我通过使用htaccess使用虚拟网址。

这是我的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>

我注意到的一件事是当我在地址栏中搜索url时,它将加载php文件,而不是使用ajax调用。

我目前正在Apache 2.2 localhost上运行它

感谢您的任何建议。

2 个答案:

答案 0 :(得分:3)

我假设您在浏览器的错误日志/控制台中看到404错误消息?它还应该显示返回URL响应的404,根据您的请求,该响应将是:http://www.mysite.com/available.php

问题

问题是您的ajax调用在/参数的开头包含URL。这表示网站的根域(即它指向http://www.mysite.com/available.php)。

url: "/available.php",

解决方案

只需将url参数更改为以下正确 URL s

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

OR

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

OR

url: "available.php",

OR

url: "./available.php",

澄清代码

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

答案 1 :(得分:0)

好的,所以我知道这已经过时,但我想我会回答为什么会这样。我转向其他事情,这是最后一件事,所以我被迫弄清楚实际上只花了大约半小时。

Ajax并没有达到chrome中的url,而是在firefox中。然后我发现&#34; adblock&#34;阻止网址 - 这是因为网址有&#34;广告&#34;在它中,一旦我重新定位并重命名了文件,presto 就可以了

所以,以防有人发现自己处于类似情况。

由于