2012-07-23 73 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錯誤頭,即使最後的內容是正確的。更改控制器名稱後,錯誤消失了。