1、js ajax 设置自定义header
1.1 方法一:
?
1
2
3
4
5
6
7
8
9
10
11
|
$.ajax({
type: "POST" ,
url: "Handler1.ashx" ,
contentType: "application/x-www-form-urlencoded" ,
beforeSend: function (request) {
request.setRequestHeader( "token1" , "Chenxizhang" );
},
success: function (data) {
}
});
|
1.2 方法二:
?
1
2
3
4
5
6
7
8
9
10
11
|
$.ajax({
headers: {
"testheader" : "test"
},
type: "POST" ,
url: "Handler1.ashx" ,
contentType: "application/x-www-form-urlencoded" ,
success: function (data) {
}
});
|
2、js ajax 获取请求返回的response的header信息
ajax请求完成,会返回xhr(XMLHTTPRequest)对象,这里面会包含返回的头信息,可以通过getResponseHeader(key)和getAllResponseHeaders()获取header信息;
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
$.ajax({
type: "POST" ,
url: "Handler1.ashx" ,
contentType: "application/x-www-form-urlencoded" ,
success: function (data) {
},
complete: function (xhr, data) {
var date=xhr.getResponseHeader( 'Date' );
var stoken = xhr.getResponseHeader( 'servertoken' );
var list = xhr.getAllResponseHeaders();
console.log(list);
}
});
|
3、js ajax 跨域请求的情况下获取自定义的header信息
JS AJAX 跨域请求的时候是不能设置自定义的header信息的,但是是可以在response中获取到服务端自定义的header信息,前提是服务端设置了Access-Control-Expose-Headers;
下面是 ASP.NET 的服务端示例:
?
1
2
3
4
5
6
7
8
9
10
11
|
public void ProcessRequest(HttpContext context)
{
context.Response.AddHeader( "Access-Control-Allow-Origin" , "*" );
context.Response.AddHeader( "Access-Control-Allow-Headers" , "*" );
context.Response.AddHeader( "Access-Control-Allow-Methods" , "*" );
context.Response.AddHeader( "servertoken" , "test" );
context.Response.AddHeader( "Access-Control-Expose-Headers" , "servertoken" );
context.Response.ContentType = "text/plain" ;
context.Response.Write( "Hello World" );
}
|
|