使用jQuery添加请求标头的正确方法

时间:2014-06-16 18:45:23

标签: javascript jquery

有时,在IE中,我的ajax请求不会发送标题 X-Requested-With 。我在谷歌搜索并找到了2种方法。两种方式似乎都有道理。我想知道它们之间是否有任何区别。

1)使用ajaxSend

$(document).ajaxSend(function (event, request, settings) {
    request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
});

2)使用AjaxSetup

$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    }
});

1 个答案:

答案 0 :(得分:0)

如果您使用完整版jQuery.ajax(),则可以使用headers属性:

$.ajax({
  headers: { "ResponseDataType" : "Json",
    "X-Requested-With", "XMLHttpRequest"},
  // etc
});

添加了DRY版本:

(function (window, undefined)
{
  function extendedAjax(settings)
  {
    var defaultSettings = {
      headers: { "X-Requested-With": "XMLHttpRequest" }
    };

    $.extend(defaultSettings, settings);

    var jqXHR = $.ajax(settings);

    return jqXHR;
  }

  $.extend({
    eajax: extendedAjax
  });

})(window);