jquery ajax header和beforesend之间的区别

时间:2016-01-26 16:53:46

标签: jquery ajax

我正在阅读有关如何设置标题的文档,显然有两种方法是在beforexnd xhr之前,另一种方法是传递带有值的对象标题。它们之间的区别是什么?

beforeSend

$.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
    }
});

$.ajax({
    cache: false,
    type: "GET",
    url: "/",
    headers: {
        'x-access-token': token
    },
    success: function(data) {
        //Do something
    },
    error: function(data) {
        //Do something
    }
});

1 个答案:

答案 0 :(得分:6)

Reviewing the docs,看起来唯一真正的区别(beforeSend更简洁和声明性除外)是headers可以覆盖headers的值。来自beforeSend部分:

  

标题设置中的值也可以在beforeSend函数中覆盖。

headers也早于beforeSend,已在v1.5中添加。 (我假设在v1.5之前有plotOptions: { column: { cursor: 'pointer', point: { events: { click: function(e) { var drilldown = this.drilldown; //var drilldownC = this.drilldown.categories; if (drilldown) { // 1st drill down this.series.chart.setTitle({ text: drilldown.name }); chartC.setTitle(null, { text: 'BBBBBBB' }); } else { chartC.setTitle({ text: name }); chartC.setTitle(null, { text: 'AAAAAA' }); } } } }, dataLabels: { enabled: true, formatter: function() { return this.y; } } } }, ,因为它记录了v1.5中行为的变化情况。)