ror*_*o21 5 javascript ajax jquery xmlhttprequest
以下代码自动Authorization request header为所有jQuery Ajax请求设置:
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Bearer ' + jwtoken);
}
});
Run Code Online (Sandbox Code Playgroud)
对于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);
Run Code Online (Sandbox Code Playgroud)
我不想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');
Run Code Online (Sandbox Code Playgroud)
以下是如何使用此方法获取新的XMLHttpRequest对象.
var xmlHttpRequest = customXMLHttpRequest('post','http://www.yoursite.com',true);
Run Code Online (Sandbox Code Playgroud)
此对象将设置标头.
另一种选择是将令牌保存在cookie中,并在创建XMLHttpRequest时,在从cookie中检索后使用此值.
| 归档时间: |
|
| 查看次数: |
19126 次 |
| 最近记录: |