将参数发送到ajax start函数

时间:2017-10-02 06:25:54

标签: jquery ajax

我有一个jQuery ajax请求:

$.ajax({
    type: "POST",
    url: "calculate.php",
    data: {},
    dataType: 'json',
    success: function (response) {
    }, error: function (jqXHR, textStatus, errorThrown) {

    }
});

在ajax开始之前,我想将参数发送到函数ajaxStart,如下所示

$(document).ajaxStart(function (xxx) {
  alert("parameter equals to="+xxx);
});

如何在我的请求启动时将参数xxx发送到ajaxStart? 是否可以将参数发送到ajaxStart

1 个答案:

答案 0 :(得分:2)

您可以使用$.ajaxSetup$.ajaxSend在请求发生之前更改请求中发送的数据。像

这样的东西
$(document).ajaxSend(function( event, jqxhr, settings ) {
    settings.data = settings.data + '&param=value'
});

更可扩展的方法是使用$.param并在扩展之前检查是否有数据

$(document).ajaxSend(function( event, jqxhr, settings ) {
  var params = {param : 'test'};
  var sep    = settings.data && settings.data.length ? '&' : '';

  settings.data = settings.data + sep + $.param(params);
});