技术饭
jquery中ajax请求如何设置http请求头
copylian
0 评论
15143 浏览
2017.05.11
jquery中ajax请求如何设置http请求头,jQuery Ajax可以通过headers或beforeSend修改request的HTTP headers也可以获取HTTP headers,在ajax里面还有许多功能可以设置,大家可以多看看jquery的api慢慢摸索。
jQuery Ajax可以通过headers或beforeSend修改request的HTTP headers,例如:
$.ajaxSetup({ //发送请求前触发 beforeSend: function (xhr) { var date = new Date(); var time = date.getTime(); var random = getRandomString(20); var token = 'API'; var confusion_str = '453#$@%!*121212'; var signature = $.sha1($.md5(time + random + token + confusion_str)); xhr.setRequestHeader('source', 1); xhr.setRequestHeader('time', time); xhr.setRequestHeader('random', random); xhr.setRequestHeader('signature', signature); } });
注意:W3规定XMLHttpRequest并不能修改全部的HTTP Headers,而仅是一小部分。
jquery获取HTTP headers:
$.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); } });
jQuery通过XMLHttpRequest的getResponseHeader或getAllResponseHeaders()可以获取指定的HTTP header field的值,但规定不能获取Set-Cookie和Set-Cookie2的值。
但是需要注意的是当ajax的dateType是jsonp的时候,只少是我测试的时候在服务端我获取不到头信息,如果哪位大神能拿到,敬请指教。
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!
文明上网理性发言!