我的网站在Codeigniter中开发,使用JQuery post方法检索数据,当我在firebug中看到它显示正确的输出时,它显示404未找到错误。
在本地系统中工作正常。我的网站在实时实例的子域下可能导致问题?。
请提示可能是什么问题。
这是我的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 Not Found - http://svims.noq.co.in/svims/token_generator”
token_generator 发布http://svims.noq.co.in/svims/get_token/28
404 Not Found 2.36s
======================================== 问题是,子域名和控制器名称不应该相同。我重命名了控制器名称,它工作正常。
答案 0 :(得分:0)
要检查的两件事......
除非绝对需要,否则不要对ajax请求使用完整的URL ..
$.post("http://svims.noq.co.in/svims/get_token/28" ,
//Should Become:
$.post("/svims/get_token/28" ,
确保您没有回复任何内容或将任何错误或通知转储到您的页面上,因为它会将请求关闭。按Chrome中的F12(Cmd + J)打开开发人员工具包,然后转到网络选项卡,单击xhr在底部,然后再次提交你的ajax并注意POST返回,点击预览,看看它返回什么..在SO上看到这个问题..
答案 1 :(得分:0)
问题是,子域名和控制器名称不应该相同。重命名控制器名称,它可以正常工作。
答案 2 :(得分:0)
另一个注意事项:某些网络托管默认安装子目录/子域名,如/ stats,/ logs,如果你的网站主机有它们,你可能会因CI而得到404错误
我在子域中创建了一个应用,并将一个控制器命名为“stats”,即使最终内容正确,也会获得404错误标头。更改控制器名称后,错误消失了。