我一直在努力解决这个问题,但似乎无法解决问题。
我有一个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上运行它
感谢您的任何建议。
答案 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 就可以了。
所以,以防有人发现自己处于类似情况。
由于