2012-07-23 76 views
0

我的网站在Codeigniter中开发,使用JQuery post方法检索数据,它显示404未找到错误,而我在firebug中看到它正在显示正确的输出。JQuery获取错误404,但可以看到Firebug中的响应

它在本地系统中工作正常。我的网站在活动实例的子域下,这可能会导致问题?

请提示可能是什么问题。

这里是我的htaccess文件

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [QSA,L] 
</IfModule> 

这里是萤火虫响应细节

Connection Keep-Alive 
Content-Type text/html 
Date Mon, 23 Jul 2012 12:28:26 GMT 
Keep-Alive timeout=3, max=29 
Server Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 mod_fcgid/2.3.6 
Transfer-Encoding chunked 
X-Powered-By PHP/5.2.17 
Request Headers 
Accept text/html, */*; q=0.01 
Accept-Encoding gzip, deflate 
Accept-Language en-us,en;q=0.5 
Connection keep-alive 

这里是我的代码

function updatepanel() 
{ 
$.post("http://svims.noq.co.in/svims/get_token/28" , 
function (d) 
{ 
    $("#tokenview").html(d); 
} 
); 
} 

这里是萤火虫的反应。

“NetworkError:404未找到 - http://svims.noq.co.in/svims/token_generator

token_generator POST http://svims.noq.co.in/svims/get_token/28

404未找到 2.36s

=============== ========================= 问题是,子域名和控制器名称应该不一样。我重命名了控制器名称,它工作正常。

+3

有没有机会看到jQuery代码? – 2012-07-23 12:24:57

+0

提供代码... – mrsrinivas 2012-07-23 12:35:29

+0

我确定您已经检查过,但是您能否确认响应头中的HTTP响应代码是否为404? 我使用很多标题代码并指定了正文内容。 – 2012-07-23 12:23:07

回答

0

问题是,子域名和控制器名称不能相同。重命名控制器名称,它工作正常。

0

两件事情来检查......

数量1

,除非它的绝对必要,不要使用Ajax请求完整的URL ..

$.post("http://svims.noq.co.in/svims/get_token/28" , 
//Should Become: 
$.post("/svims/get_token/28" , 

2号

制作确保你没有回应任何东西或将任何错误或通知转储到你的页面上,因为它会抛出请求。按chrome中的F12(Cmd + J)打开开发人员工具包,然后转到twork选项卡,单击XHR底部,然后再提交您的AJAX并观察POST返回,点击预览,看看它返回..查看所以这个问题..

Request Monitoring in Chrome

0

只是另注:某些Web hostings默认安装子目录/子域像/统计,/日志,如果你的虚拟主机有他们,你可能会得到404错误与CI

我创建了一个子域的应用程序和一个名为控制器作为'统计',并获得404错误头,即使最后的内容是正确的。更改控制器名称后,错误消失了。