转自网络
1 $.ajax({
2 type: "POST",
3 url: "http://192.168.0.88/action.cgi?ActionID=WEB_RequestCertificateAPI",
4 data: {
5 "user": "api",
6 "password": "api"
7 },
8 dataType: "json",
9 ContentType: "application/json",
10 beforeSend: function (XMLHttpRequest) {
11 //HttpUtility.UrlEncode
12 var sessionid = "SessionID";
13 XMLHttpRequest.setRequestHeader(sessionid, sid);
14 },
15 success: function (SessionID) {
16 //alert(SessionID.success);
17 var dt = eval("(" + SessionID.data + ")");
18 if (SessionID.success == 1) {
19 alert("success");
20 }
21 else {
22 alert('errorId:' + SessionID.error.id);
23 alert('errorCode:' + SessionID.error.code);
24 alert('errorPara:' + SessionID.error.params);
25 }
26 }
27 });
因为种种原因,自己的框架中要传系统约定好的header信息,页面使用的jquery的ajax请求,找了好久,突然发现我们可以在beforeSend方法中设置,这个方法接受一个参数,就代表了发起异步请求的XMLHttpRequest对象,我们可以用该对象的setRequestHeader方法实现我们的目的,比如,我在header中加一个自定义的dataType头信息:
beforeSend: function(XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("dataType","abc");
$(".return_confrim").html("<img src='jquery/images/loading.gif'/> 正在验证账户...");
},
这样,我们在服务器端可以得到自定义中的dataType信息。