Ответ 1
Получил это. Это jqXHR.statusText
.
$.get("test.php").complete(function(jqXHR) {
console.log(jqXHR.statusText);
});
Просто попробовал в Chrome с вашим точным кодом PHP.
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
Вопрос
Как мне получить часть "Some message here" в заголовке?
HTTP
6.1 Status-Line
Первая строка сообщения ответа - это строка состояния, состоящая из версии протокола, за которой следует числовой код состояния и его связанная текстовая фраза, причем каждый элемент разделяется SP персонажи. Никакой CR или LF не допускается, кроме как в конечной последовательности CRLF.
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 docs говорят, что он также доступен там. Если вы не знаете имя заголовка, попробуйте getAllResponseHeaders()
.
Также вы можете увидеть это сообщение в консоли отладки браузера (вкладка сети, заголовки подключений)? Если он не существует, он вряд ли будет доступен из js.