Javascript jquery如何获取post类型的ajax调用返回的状态消息?

Javascript jquery如何获取post类型的ajax调用返回的状态消息?,javascript,jquery,ajax,apache,http,Javascript,Jquery,Ajax,Apache,Http,javascript $('#send').on('click', function() { $.ajax({ 'url': $('#url').val(), 'type': 'post', 'complete': function (jqXHR, textStatus) { var msg = "Status: " + jqXHR.status + " (" + jq

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);
            }
        });
    });
结果

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

    header("HTTP/1.0 200 Some message here");
    flush();
    exit();

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);
});

用你的PHP代码在Chrome上试过了。

你试过
xhrobject.getResponseHeader()
了吗?说那里也有。如果您不知道标题的名称,请尝试
getAllResponseHeaders()


另外,您能否在浏览器的调试控制台(网络选项卡,连接标题)中看到该消息?如果它不在那里,它将很难从js上获得。

我不确定这是否符合HTTP的标准…是的,这已经够奇怪了。只有代码必须是特定代码。(编辑:至少在HTTP 1.1中。现在正在查找1.0…)只需将您自己的自定义标题与该消息一起发送。@Xeon06是的,我添加了一个链接。如果它是200(成功)而不是200(成功),则它是有效的。jqXHR.statusText为我返回
OK
,而不是
此处的某些消息
Chrome是浏览器,Apache是浏览器server@Xeone06-见我的编辑,更新了我的代码和响应以包含
jqXHR.statusText
Huh,我有相同的精确配置。也许是一些模糊的Apache设置。我会用更多相关的标签来更新你的帖子,让人们来看。@Xeone06-这对你来说是javascript,但只对.get有效,而不是对带有
post
type的完整ajax调用有效:(事实上,如果我只是一个get而不是一篇帖子,它在完整ajax中有效。我必须更新我的问题。阅读帖子,而不仅仅是问题标题。