的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
答案 0 :(得分:3)
知道了。它是jqXHR.statusText
。
$.get("test.php").complete(function(jqXHR) {
console.log(jqXHR.statusText);
});
只需使用您确切的PHP代码在Chrome中试用它。
答案 1 :(得分:-2)
你有没有试过xhrobject.getResponseHeader()
? jQuery docs说它也可以在那里使用。如果您不知道标题的名称,请尝试getAllResponseHeaders()
。
此外,您是否可以在浏览器的调试控制台(网络选项卡,连接标头)中看到该消息?如果不存在,那将很难从js获得。