您的位置:首页 > 理论基础 > 计算机网络

javascript/jquery读取和修改HTTP headers

2016-10-28 11:49 218 查看
javascript/jquery读取和修改HTTP headers

jquery修改HTTP headers

jQuery Ajax可以通过
headers
beforeSend
修改request的HTTP headers,例如:

$.ajax({
url: "./test.php",
type: "POST",
headers: {
"Accept" : "text/plain; charset=utf-8",
"Content-Type": "text/plain; charset=utf-8"
},
/*
beforeSend: function(jqXHR, settings) {
jqXHR.setRequestHeader('Accept', 'text/plain; charset=utf-8');
jqXHR.setRequestHeader('Content-Type', 'text/plain; charset=utf-8');
},
*/
data: {"user" : "min", "pass" : "he"},
error: function(jqXHR, textStatus, errorThrown) {
//....
},
success: function(data, textStatus, jqXHR) {
//....
}
}

注意:W3规定XMLHttpRequest并不能修改全部的HTTP Headers,而仅是一小部分。

jquery获取HTTP headers:

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
的值


参考:

http://stackoverflow.com/questions/1145588/cannot-properly-set-the-accept-http-header-with-jquery

http://stackoverflow.com/questions/2444489/getresponseheader-is-not-a-function

Related Posts

2011/07/19 -- JSONP实现Ajax跨域cross-domain访问

2011/07/19 -- Cookies相关操作

2011/05/10 -- jQuery Ajax使用范例和JSON应用

2011/06/30 -- libcurl库及其使用实例

2011/06/30 -- C解析HTTP request和response

2011/06/29 -- C实现HTTP client

2011/05/10 -- JavaScript和PHP中json object和json string互相转换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: