我正在阅读有关如何设置 header 的文档,显然有两种方法之一是使用presend xhr,而另一种方法只是传递带有值的对象 header 。它们之间有什么区别?
发送之前
$.ajax({
cache: false,
type: "GET",
url: "/",
beforeSend: function(xhr) {
xhr.setRequestHeader('x-access-token', token);
},
success: function(data) {
//Do something
},
error: function(data) {
//Do something
}
});
header
$.ajax({
cache: false,
type: "GET",
url: "/",
headers: {
'x-access-token': token
},
success: function(data) {
//Do something
},
error: function(data) {
//Do something
}
});
最佳答案
Reviewing the docs似乎唯一真正的区别(除了headers
更简洁和声明性强)是beforeSend
可以覆盖headers
的值。从headers
部分:
beforeSend
也早于v1.5中添加的headers
。 (我假设beforeSend
在v1.5之前就已经存在,因为它记录了从v1.5开始的行为变化)。
关于jQuery Ajax header 和beforesend之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35019352/