技术饭

jquery中ajax请求如何设置http请求头

copylian    0 评论    13519 浏览    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的时候,只少是我测试的时候在服务端我获取不到头信息,如果哪位大神能拿到,敬请指教。

只袄早~~~
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢