2014-04-29 32 views
0

一個簡單的Ajax請求的成功:jQuery.ajax通過jQuery觸發對404或任何其他錯誤

$.ajax({ 
    url: 'ajax.php', data: {}, type: 'post', async: false, 
    success: function(result, status, XHR){ 
     alert('success:'+XHR.status); 
    }, error: function(XHR, status, error){ 
     alert('error:'+XHR.status); 
    } 
}); 

ajax.php只包含:

<?php header('HTTP/1.1 404'); ?> 

出奇提醒success:404
(Mozilla的/ 5.0(X11; Ubuntu的版本; Linux的i686; RV:28.0)的Gecko/20100101火狐/ 28.0)

有一個錯誤報道了這一問題之前,還是我做錯了什麼?

+0

除了在您的警報Javascript錯誤(你應該改變 「=」,以 「+」),我沒有看到任何錯誤。代碼實際上爲我提醒「錯誤:404」。 Windows 7,Chrome和Firefox(最新版本)。你有沒有測試過這個PHP函數來改變響應代碼:http://www.php.net/manual/en/function.http-response-code.php? – yvanavermaet

+0

@yvanavermaet'='只是一個錯誤而編輯。我測試了'http_response_code(404);',但仍然存在相同的問題。 – Omid

回答

0

我複製粘貼你的代碼,它工作得很好。輸出 「錯誤:404」

test.php的:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<script type="text/javascript" src="//code.jquery.com/jquery-latest.min.js"></script> 
<script> 
$.ajax({ 
    url: 'ajax.php', data: {}, type: 'post', async: false, 
    success: function(result, status, XHR){ 
     alert('success:'+XHR.status); 
    }, error: function(XHR, status, error){ 
     alert('error:'+XHR.status); 
    } 
}); 
</script> 
<title>Test</title> 
</head> 
<body> 

<p>Hello</p> 

</body> 
</html> 

ajax.php

<?php header('HTTP/1.1 404'); ?> 
+0

之前的代碼工作,恐怕如果這是我的Ubuntu操作系統上未知的問題。剛剛發生硬件重置後,由於突然拔掉了電源線,但我並不真正將其視爲合乎邏輯的原因。但是,我的操作系統和PHP似乎已損壞! – Omid

+0

@Omid我不知道...我使用Mint 15和Firefox 26.不知道爲什麼它會與您的操作系統相關。 –

相關問題