gpt4 book ai didi

javascript - 如何在 ajax 调用后拦截数据,与 jquery.ajaxPreFilter 对话

转载 作者:行者123 更新时间:2023-11-30 18:12:44 27 4
gpt4 key购买 nike

我想在执行ajax成功回调之前拦截并修改来自服务器的数据

我有这个代码:

    jquery.ajaxPrefilter(function (options, originalOptions, jqXHR) {
// Modify options, control originalOptions, store jqXHR, etc
});

并且想要等效的:

    jquery.ajaxPostfilter(function (dataComingFromServer) {

dataComingFromServer.applyMyModifications();
});

ajaxPostfilter 虽然不存在 - 是否有另一种方法可以在服务器响应到达事件处理程序之前拦截它:

这个问题与这个问题相关——但没有得到回答: How can I intercept ajax responses in jQuery before the event handler?

最佳答案

如果你想在特定的回调之前使用一个标准化的函数来修改你的数据,你可以使用这样的模式:

// Boilerplate to modify your data
function preprocess(data){
data.foo = "bar";
return data;
}

// Your specific handlers
function logdata(data){
console.log(data);
}
function writedata(data){
document.write(data);
}

// AJAX requests
$('#foo').load('url1', function(data) {
logdata(preprocess(data));
});
$('#bar').load('url2', function(data) {
writedata(preprocess(data));
});

当然,这个可以bak成一个方法,把传统的.ajax包裹起来,用起来更方便。

请注意,KevinB 指出的 dataFilter 选项具有类似的目的,但仅限于 .ajax 方法。如果你想为 AJAX 请求设置一个全局过滤器,你可以使用:

$.ajaxSetup({
dataFilter: preprocess
});

关于javascript - 如何在 ajax 调用后拦截数据,与 jquery.ajaxPreFilter 对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14164696/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com