目錄javascript
$.ajax({ type: "POST", url: "Handler1.ashx", contentType: "application/x-www-form-urlencoded", beforeSend: function (request) { request.setRequestHeader("token1", "Chenxizhang"); }, success: function (data) { //your code } });
$.ajax({ headers: { "testheader": "test" }, type: "POST", url: "Handler1.ashx", contentType: "application/x-www-form-urlencoded", success: function (data) { //your code } });
ajax請求完成,會返回xhr(XMLHTTPRequest)對象,這裏面會包含返回的頭信息,能夠經過getResponseHeader(key)和getAllResponseHeaders()獲取header信息;java
$.ajax({ type: "POST", url: "Handler1.ashx", contentType: "application/x-www-form-urlencoded", success: function (data) { //your code }, complete: function (xhr, data) { /* 獲取相關Http Response header getResponseHeader(key):獲取指定頭信息 getAllResponseHeaders():獲取所有可默承認獲取的頭信息 */ var date=xhr.getResponseHeader('Date');// 服務器端時間 //獲取服務端自定義的header信息 var stoken = xhr.getResponseHeader('servertoken'); var list = xhr.getAllResponseHeaders(); console.log(list); /* date: Fri, 12 Jul 2019 12:41:00 GMT content-encoding: gzip server: Microsoft-IIS/10.0 x-aspnet-version: 4.0.30319 x-powered-by: ASP.NET vary: Accept-Encoding content-type: text/plain; charset=utf-8 servertoken: test1 cache-control: private content-length: 129 */ } });
JS AJAX 跨域請求的時候是不能設置自定義的header信息的,可是是能夠在response中獲取到服務端自定義的header信息,前提是服務端設置了Access-Control-Expose-Headers;
下面是 ASP.NET 的服務端示例:ajax
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", "*"); //自定義header信息 context.Response.AddHeader("servertoken", "test"); context.Response.AddHeader("Access-Control-Expose-Headers", "servertoken"); context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); }
——————————————————————————————————————跨域