javascript - 覆盖 Ajax 成功
问题描述
感谢您的阅读。
基本上,我想要做的是覆盖 ajax 成功事件。
在我遇到的大多数指南和问题中,似乎只涉及向成功事件添加回调。我想实际覆盖事件本身。
本质上,我需要能够在 $.ajax 之前捕获成功事件并在 ajax 事件接收数据之前运行我的逻辑。
我目前拥有的是this,但似乎在“this”上下文中更改值无济于事。
var XMLHttpRequestSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(){
var onError = this.onerror;
var onLoad = this.onload;
this.onload = (function(){
this.response = "new response";
return onLoad.apply(this, [].slice.call(arguments));
});
return XMLHttpRequestSend.apply(this, [].slice.call(arguments));
}
有什么建议么 ?
解决方案
我找到了解决方案。
以下似乎解决了。
var ajaxContext = $.ajax;
$.ajax = function(options){
var success = options.success;
options.success = (function(data){
data = data.Results;
return success.apply(this, [].slice.call(arguments));
});
return ajaxContext.apply(this, [].slice.call(arguments));
};
推荐阅读
- javascript - 检查 Array javascript 中的所有对象值是否具有布尔值 false
- sql - 动态计算已经过去了多少个月 - SQL Server
- reactjs - 在 react 中从 wordpress rest api 动态渲染 ACF 字段
- sql - Teradata SQL - 拆分字符串并在相应字段中搜索该组合
- laravel - 如何在 Laravel 中显示数组的特定项
- sql-server - 查找范围内数字的位置
- asp.net-mvc - Elmah - 不要记录完整的堆栈跟踪
- python - 如何使用测试客户端填写 Django 表单
- php - 使用 PHP 进行试除素因式分解
- java - 尝试打开谷歌地图时应用程序已停止