2011-10-28 104 views
10

我有一個服務器從同一個url返回HTTP狀態代碼200,201和202。在Chrome中,我已通過網絡調試面板確認狀態碼是我期望的狀態碼(即200,201或202)。我依靠該狀態碼來確定下一步。

我期望jQuery(版本1.5.2)AJAX的回調請求將jqxhr.status設置爲服務器發送的狀態碼。但是,即使服務器發送的代碼是201或202,狀態代碼始終爲200.

換句話說,無論服務器發送什麼內容,以下代碼都會打印Code: 200

$.get(url, {}, function (data, textStatus, xhr) { 
    alert("Code: " + xhr.status); 
}); 

這究竟是爲什麼,更重要的是,一個人如何可以得到實際的狀態代碼在一個jQuery AJAX回調$.get$.ajax

謝謝您的閱讀。

+0

你有沒有機會使用JSONP或跨域GET請求? –

+0

也許這會有一些幫助:http://bugs.jquery.com/ticket/8211 – Scoobler

+0

KrisIvanov:沒有JSONP或跨域。這是通常的要求。 –

回答

2

從我所經歷的jQuery來說,只是沒有很好地處理響應中的實際狀態代碼。你可以嘗試使用一些優秀的老式骨骼JS來進行手動AJAX調用,並自己處理狀態。

以下是關於如何操作的一些教程。

http://www.degraeve.com/reference/simple-ajax-example.php

http://www.w3schools.com/ajax/default.asp

request.status是你應該能夠訪問你的請求對象的狀態代碼。這裏是另一個頁面,顯示了一些關於如何訪問關於請求狀態的更詳細信息。

http://www.ibm.com/developerworks/web/library/wa-ajaxintro3/

希望幫助你釘它!

+0

Thumallen是對的,它不是全部就是沒有。通過jquery ajax捕獲重定向令人不快 – Mikhail