2013-07-25 31 views
3

我有一個頁面有一個表單和兩個可能的響應,如果成功的AJAX調用,其中一個只返回一個狀態碼。如何檢查AJAX響應是否包含jQuery中的HTML內容?

我需要做的是在任何HTML內容的成功回調中檢查response對象,以便我可以在我的頁面上顯示它們。

我已經知道了,我就可以把它作爲一個參數在我的回調訪問response,就像這樣:

function success(response) { }

我想不通的唯一的事情就是如何檢查,如果該對象有任何HTML內容。我怎樣才能做到這一點?

+2

你知道成功的確切回覆,如果是的話 - 你可以檢查的成功,而不是,然後承擔HTML /如果不是,則失敗。 –

+1

好吧,如果只返回一個狀態碼,'if(response.indexOf('<') > -1)'因爲狀態碼沒有'<,但是html有效。「 – Ohgodwhy

+0

」在成功AJAX的情況下有兩種可能的響應調用,其中一個只返回一個狀態碼「,兩個響應都返回成功狀態,其中一個會有HTML,在jQuery中,我需要檢查響應是否有HTML,這樣我就可以顯示它了。 – Kehlan

回答

13

您可能想要查看HTML MIME類型的響應標頭。 $.ajax將通過一個jqXHR對象返回到您的success回調,然後你就可以致電.getResponseHeader()

function success(response, status, jqXHR) { 
    if(jqXHR.getResponseHeader('content-type').indexOf('text/html') >= 0) { 
     ... 
    } 
} 
+0

我很確定這正是我所需要的。謝謝。 – Kehlan

+1

我已經編輯了我的回答,檢查'text/html'是否存在'indexOf()',因爲該頭部的值可能會包含其他信息:例如'text/html; charset = utf-8' –

+0

我目前無法測試,但今天晚些時候我會在問題解決後重新審視這個問題。感謝您的建議! – Kehlan

相關問題