$ .ajaxPrefilter()Vs $ .ajaxSetup() - jQuery Ajax

时间:2015-04-24 09:28:55

标签: javascript jquery ajax

在jQuery中通过ajax学习时,我遇到了两个术语,即 $.ajaxPrefilter() $.ajaxSetup() 。我所能发现的是,在加载或调用 $.ajax() 之前,这些更改会在AJAX中进行一些更改。

有人可以用最简单的形式简化和解释这些术语,并略微比较两者吗?

2 个答案:

答案 0 :(得分:12)

$.ajaxSetup() - 为将来的Ajax请求设置默认值。例如,您可以在此处为每个请求设置始终要使用的ajax URL。

示例:

$.ajaxSetup({
  // Always use this URL for every request
  url: "http://example.com/ajax.php"
});

$.ajaxPrefilter() - 在发送每个请求之前修改现有选项。例如,您可以将查询字符串组件附加到发送的每个ajax请求中。

示例:

$.ajaxPrefilter( function(options) {
    // Always add "?debug=1" to every URL
    options.url += (options.url.indexOf("?") < 0 ? : "?" : "&") + "debug=1";
});

答案 1 :(得分:5)

$.ajaxSetup只需一个options对象,并将其用作未来$.ajax()次调用的默认值(以及其他快捷方式的调用,如$.get)。例如,

$.ajaxSetup( { dataType: 'json' });

将此设为未来通话的默认dataType

$.ajaxPrefilter允许您在将每个AJAX请求发送到服务器之前运行自定义函数。它可以检查该调用的选项,然后以任何方式更改它们。因此它比$.ajaxSetup提供了更多的灵活性和控制力。