我正在使用AJAX根据需要从服务器加载数据。我目前正在努力将服务器软件更新到最新版本。我注意到的一件事情发生了变化,现在每个请求都需要我传递一个令牌。这意味着我必须为每个请求添加一个新参数。我希望通过一般方法实现这一点,而不必修改每一个AJAX调用。
任何指针?
答案 0 :(得分:13)
您可以使用$.ajaxSetup
中所示的following article方法。
答案 1 :(得分:10)
您要找的是Prefilter,这是页面中的示例:
$.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
// Modify options, control originalOptions, store jqXHR, etc
});
这需要JQuery 1.5。
答案 2 :(得分:0)
使用ajaxPrefilter扩展已发布数据的示例:
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
if (originalOptions.type === 'POST' || options.type === 'POST') {
var modifiedData = $.extend({},originalOptions.context.options.data,{ property:"val",property_two: "val" });
options.context.options.data = modifiedData;
options.data = $.param(modifiedData,true);
}
});
答案 3 :(得分:0)
我采用了Raja Khoury的解决方案,但由于我的上下文为空,因此对其进行了一些编辑。
这是我想出的:
$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
if (originalOptions.type === 'POST' || options.type === 'POST') {
var modifiedData = $.extend({}, originalOptions.data, { __RequestVerificationToken: getAntiForgeryToken() });
options.data = $.param(modifiedData);
}
});