Javascript jquery如何获取post类型的ajax调用返回的状态消息?
javascriptJavascript 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
$('#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中有效。我必须更新我的问题。阅读帖子,而不仅仅是问题标题。