[英]jquery how to get the status message returned by a ajax call of type post?
JavaScript的
$('#send').on('click', function() {
$.ajax({
'url': $('#url').val(),
'type': 'post',
'complete': function (jqXHR, textStatus) {
var msg = "Status: " + jqXHR.status + " (" + jqXHR.statusText + " - " + textStatus + ")<br />";
msg += jqXHR.getAllResponseHeaders().replace(/\n/g, "<br />");
$('#results').html(msg);
}
});
});
PHP
header("HTTP/1.0 200 Some message here");
flush();
exit();
結果
Status: 200 (OK - success)
Date: Wed, 07 Dec 2011 21:57:50 GMT
X-Powered-By: PHP/5.3.6
Transfer-Encoding: chunked
Connection: Keep-Alive
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8r DAV/2 PHP/5.3.6
Content-Type: text/html
Keep-Alive: timeout=5, max=100
題
如何獲得標題中的“此處的一些消息”部分?
HTTP
6.1狀態線
響應消息的第一行是狀態行,由協議版本后跟數字狀態代碼及其關聯的文本短語組成,每個元素由SP字符分隔。 除最終的CRLF序列外,不允許使用CR或LF。
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
得到它了。 這是jqXHR.statusText
。
$.get("test.php").complete(function(jqXHR) {
console.log(jqXHR.statusText);
});
剛剛在Chrome中使用您的確切PHP代碼進行了嘗試。
你試過xhrobject.getResponseHeader()
嗎? jQuery文檔說它也可以在那里使用。 如果您不知道標題的名稱,請嘗試getAllResponseHeaders()
。
此外,您是否可以在瀏覽器的調試控制台(網絡選項卡,連接標頭)中看到該消息? 如果它不在那里,它幾乎不可用於js。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.