【发布时间】:2016-02-06 08:38:01
【问题描述】:
以下代码自动为所有 jQuery Ajax 请求设置Authorization request header:
$.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 对象时,变量jwtoken 已被删除。
【问题讨论】:
-
如果您手动创建,您是唯一控制创建过程的人。使用 jQuery 时,请求由框架创建,因此它可以为您提供自动设置标头的基础设施。当您处于控制之中时,您应该承担责任并为标头注入设置基础设施。唯一的答案就是这样做的 - 所以将其标记为答案。
标签: javascript jquery ajax xmlhttprequest