文档章节

如何拦截或修改原生ajax请求

lovebing
 lovebing
发布于 2015/03/30 21:30
字数 141
阅读 1480
收藏 8

jQuery已经实现了各种 ajax 事件,如 beforeSend 等,但原生的 XMLHttpRequest 并没有这种事件。在没有用 jQuery的情况下,如果想修改 ajax 请求,得做一些特殊的处理。以下是我处理的方法:

XMLHttpRequest.prototype._open = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url, async) {
    // 用对象便于修改参数
    var options = {
        method: method,
        url: url,
        async: async
    };
    if('function' === typeof window.beforeXMLHttpRequestSend) {
        if(!window.beforeXMLHttpRequestSend(this, options)) {
            return;
        }
    }
    this._open(options.method, options.url, options.async);
};


window.beforeXMLHttpRequestSend = function(xhr, options) {
    //重置参数
    options.url = 'reset url';
    options.method = 'PUT';
    options.async = false;
    
    //禁止发送请求
    //return false;
    
    //发送请求
    return true;    
};



© 著作权归作者所有

共有 人打赏支持
lovebing
粉丝 12
博文 19
码字总数 3273
作品 0
深圳
后端工程师
加载中

评论(3)

请叫我赵小宝
请叫我赵小宝
还是喜欢用jquery
lovebing
lovebing

引用来自“yaray”的评论

这个新方法加在window上范围太大了吧
不大,因为我是要对不特定的请求修改请求地址
zigzagroad
zigzagroad
这个新方法加在window上范围太大了吧
Mockjs,再也不用追着后端小伙伴要接口了

相信大家都存在这样的一个困扰,在前后端分离的大环境下, 前端需要后端的接口去完成页面的渲染, 但是大部分的情况下,前后端需要同时进行开发, 这种情况下,后端还没完成数据输出,前端只好写静...

小钱钱阿圣
2017/08/22
0
0
为XHR对象所有方法和属性提供钩子

摘要 ✨长文 阅读约需十分钟 ✨跟着走一遍需要一小时以上 ✨约100行代码 前段时间打算写一个给手机端用的假冒控制台 可以用来看的输出 这一块功能目前已经完成了 但是后来知道有一个腾讯团队...

NISAL
07/02
0
0
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
2.6K
6
sessionOrcookie/AisMVC

#AisMVC,一款仿SpringMVC框架的轻便快捷的Java MVC开发框架 ####前言 写这个框架的意义在于过去使用springmvc框架作为项目中的Controller层,springmvc的简洁配置和使用让我们选择了它,但这个...

sessionOrcookie
2016/06/28
0
0
Axios源码深度剖析 - AJAX新王者

axios源码分析 - XHR篇 文章源码托管在github上,欢迎fork指正! axios 是一个基于 Promise 的http请求库,可以用在浏览器和node.js中,目前在github上有 42K 的star数 备注: 每一小节都会从...

wanghairong-i
05/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

腾讯三大运维开源项目齐聚“OSCAR开源先锋日”

10月20日,腾讯开源三大运维开源项目——TARS、蓝鲸和织云Metis首次集结,参与了由中国信息通信研究院主办、云计算标准与开源推进委员会承办的 “OSCAR开源先锋日”。会上,腾讯开源团队与前...

腾讯开源
6分钟前
0
0
JAVA并发-从缓存一致性说volatile 讲的很好

学过计算机组成原理的一定知道,为了解决内存速度跟不上CPU速度这个问题,在CPU的设计中加入了缓存机制,缓存的速度介于CPU和主存之间。在进行运算的时候,CPU将需要的数据映射一份在缓存中,...

码代码的小司机
24分钟前
0
0
IDEA 调试功能

1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试。 IDE下方出现Debug视图,红色的箭头指向的是现在调试程序...

狼王黄师傅
31分钟前
0
0
Java面试170题

1、面向对象的特征有哪些方面? 2、访问修饰符public,private,protected,以及不写(默认)时的区别? 3、String 是最基本的数据类型吗? 4、float f=3.4;是否正确? 5、short s1 = 1; s1 = ...

lanyu96
37分钟前
0
0
优雅的写出类

前言 虽然现在已经是ES6的时代,但是,还是有必要了解下ES5是怎么写一个类的。 本文详述JavaScript面向对象编程中的类写法,并分步骤讲述如何写出优雅的类。 一、例子 例子为一个轻提示组件T...

peakedness丶
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部