将参数发送到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

您可以使用$.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);
});

最新更新