ror*_*o21 5 javascript ajax jquery xmlhttprequest
以下代码自动Authorization request header为所有jQuery Ajax请求设置:
$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Authorization', 'Bearer ' + jwtoken);
    }
});
对于XMLHttpRequest手动创建的所有对象,我想要上面的内容.更确切地说,下面的请求没有设置Authorization header.
var xhr = new XMLHttpRequest();
xhr.file = $('myfile')[0].files[0];
var fd = new FormData();
fd.append('fileId', fileId);
xhr.open('post','my-rote', true)
xhr.send(fd);  
我不想xhr.setRequestHeader('Authorization', 'Bearer ' + jwtoken);在创建XMLHttpRequest对象时使用beacuse 变量jwtoken已被删除.  
Gan*_*mar 13
一种方法是创建一个闭包,并在它可用时将jwtoken传递给它.您可以使用闭包返回的方法来创建XMLHttpRequest对象.
var customXMLHttpRequest = (function (jwtoken) {
    function getXMLHttpRequest(method, url, async){
        var xmlHttpRequest = new XMLHttpRequest();
        xmlHttpRequest.open(method, url, async);
        xmlHttpRequest.setRequestHeader('Authorization', 'Bearer ' + jwtoken);
        return xmlHttpRequest;
    }
    return getXMLHttpRequest;
})('Your token');
以下是如何使用此方法获取新的XMLHttpRequest对象.
var xmlHttpRequest = customXMLHttpRequest('post','http://www.yoursite.com',true);
此对象将设置标头.
另一种选择是将令牌保存在cookie中,并在创建XMLHttpRequest时,在从cookie中检索后使用此值.
| 归档时间: | 
 | 
| 查看次数: | 19126 次 | 
| 最近记录: |