0

我的网站在 Codeigniter 中开发,使用 JQuery post 方法检索数据,它显示 404 not found 错误,而我在 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);
}
);
}

这是萤火虫的回应。

“网络错误:404 未找到 - http://svims.noq.co.in/svims/token_generator

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

404 未找到 2.36s

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

4

3 回答 3

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) 打开开发人员工具包,然后转到网络选项卡,单击 xhr底部,然后再次提交您的 ajax 并注意 POST 返回,单击预览并查看它返回的内容.. 在 SO 上查看此问题 ..

在 Chrome 中请求监控

于 2012-07-23T13:08:07.017 回答
0

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

于 2012-08-06T03:32:04.367 回答
0

还有一点需要注意的是:一些虚拟主机默认安装子目录/子域,例如 /stats、/logs,如果您的虚拟主机有它们,您可能会收到 CI 的 404 错误

我在子域中创建了一个应用程序,并将一个控制器命名为“stats”,即使最终内容正确,也会收到 404 错误标头。更改控制器名称后,错误消失了。

于 2013-05-05T23:07:01.390 回答