JS能获取HTTP头么

 我来答
凶残的石头
2017-01-17 · 超过12用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:13.2万
展开全部
当然能了,下面附代码
test.html:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
</head>
<body></body>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url: "./test.php",
type: "POST",
data: {"user" : "min", "pass" : "he"},
error: function(jqXHR, textStatus, errorThrown) {
if (textStatus == "error") {
alert(textStatus + " : " +errorThrown);
} else {
alert(textStatus);
}
},
success: function(data, textStatus, jqXHR) {
alert(jqXHR.getResponseHeader("Server"));
alert(jqXHR.getResponseHeader("Content-Type"));
alert(jqXHR.getResponseHeader("X-Powered-By"));
alert(jqXHR.getResponseHeader("Content-Encoding"));
alert(jqXHR.getAllResponseHeaders());
alert(jqXHR.getResponseHeader("Set-Cookie")); //返回null,不能获取Set-Cookie的值
alert(data + textStatus);
}
});
});
</script>
</html>

test.php:
<?php
if (isset($_COOKIE["time"])) {
$time = $_COOKIE["time"] + 1;
} else {
$time = 1;
}
setcookie("time", $time);

$user = $_REQUEST["user"];
$pass = $_REQUEST["pass"];
print $user.$pass." ".$time;

注意:jQuery通过XMLHttpRequest的getResponseHeader或getAllResponseHeaders()可以获取指定的HTTP header field的值,但规定不能获取Set-Cookie和Set-Cookie2的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jjaiyya
2017-01-17 · 超过33用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:32.3万
展开全部

有几种情况

  • 同源请求、跨源请求

  • 客户端、服务器


XMLHttpRequest对象提供了两种读取响应头的方法:

getResponseHeader、getAllResponseHeaders


在同源请求中,可以使用这些方法,但在跨源请求限制客户端查看响应头。默认情况下,跨源请求只允许客户端查看几个简单响应头(Cache-Control、Content-Type等)。对于其他响应头的读取,必须由服务器给予客户端权限。


在服务器端,能读取请求中所有的标头,node.js的Express中间件能快速读取HTTP标头。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式