我正在阅读有关如何设置 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/

10-11 11:32