簡體   English   中英

jquery如何獲取post類型的ajax調用返回的狀態消息?

[英]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

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM