jquery怎麼在header中設定請求資訊
阿新 • • 發佈:2018-12-25
jquery是js的類庫,js本身不能操作header,因為js是在瀏覽器載入頁面過程中才開始執行的
header需要伺服器端執行操作
如果是ajax,是可以設定header
$.ajax({
url: "",
data: {},
type: "GET",
beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},//這裡設定header
success: function() {}
});
也就是setRequestHeader函式
現在ajax應用已經相當廣泛了,有很多不錯的ajax框架可供使用。ajax是一個非同步請求,也主要是一種客戶端的指令碼行為。那麼,如何在請求之前為請求新增特殊的一些頭部資訊呢?
下面是一個簡單的例子,我用jquery編寫,它的ajax函式中,有一個beforeSend方法,這個方法接受一個引數,就代表了發起非同步請求的XMLHttpRequest物件,我們可以用該物件的setRequestHeader方法實現我們的目的
為什麼要setRequestHeader?
比如,在及時通訊系統中,每次獲取訊息或者傳送訊息,都需要去判斷這個使用者是否還在連線中,通過設定"accessToken",就可以是實現正常通訊;
"accessToken",就可以是實現正常通訊;
beforeSend: function(request) { request.setRequestHeader("accessToken", accessToken); },
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 2 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4 <html xmlns="http://www.w3.org/1999/xhtml"> 5 <head runat="server"> 6 <title></title> 7 <script src="jquery-1.3.2-vsdoc.js" type="text/javascript"></script> 8 <script type="text/javascript" language="javascript"> 9 $(function() { 10 $("#test").click(function() { 11 $.ajax({ 12 type: "GET", 13 url: "default.aspx", 14 beforeSend: function(request) { 15 request.setRequestHeader("Test", "Chenxizhang"); 16 }, 17 success: function(result) { 18 alert(result); 19 } 20 }); 21 }); 22 }); 23 </script> 24 25 </head> 26 <body> 27 <form id="form1" runat="server"> 28 <div id="v"> 29 </div> 30 <input type="button" value="測試" id="test" /> 31 </form> 32 </body> 33 </html>
<a data-cke-saved-href="http://images.cnblogs.com/cnblogs_com/chenxizhang/WindowsLiveWriter/ajaxRequestHeader_10A7C/image_2.png" href="http://images.cnblogs.com/cnblogs_com/chenxizhang/WindowsLiveWriter/ajaxRequestHeader_10A7C/image_2.png" class="thickbox"><img data-cke-saved-src="http://images.cnblogs.com/cnblogs_com/chenxizhang/WindowsLiveWriter/ajaxRequestHeader_10A7C/image_thumb.png" src="http://images.cnblogs.com/cnblogs_com/chenxizhang/WindowsLiveWriter/ajaxRequestHeader_10A7C/image_thumb.png" alt="image" width="712" height="615" /></a>
你的關注和支援是對我最大的動力~
其實很簡單,首先如果是常見型別,則請直接設定 dataType 屬性
$.ajax({
dataType: "json",
type: "get",
success: function (data) {
}
});
設定 dataType 後,會去 accepts 屬性(此屬性會預置一些常用型別)中直接拿相應的型別新增到 Accept 中。
如果想自己自定義 jQuery 中沒有的 Accept 內容,可以手動設定 accepts 屬性,使用 鍵值對 儲存,然後再設定 dataType 屬性為剛剛自定義的鍵。
$.ajax({
accepts: {
xxx: "application/xxx"
},
dataType: "xxx",
type: "get",
success: function (data) {
}
});
當然還可以直接設定 headers 屬性,直接寫 Accept 的內容是什麼。
$.ajax({
headers: {
Accept: "application/json; charset=utf-8"
},
type: "get",
success: function (data) {
}
});