文档章节

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

lovebing
 lovebing
发布于 2015/03/30 21:30
字数 141
阅读 1447
收藏 8
点赞 0
评论 3

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
sessionOrcookie/AisMVC

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

sessionOrcookie
2016/06/28
0
0
访问安全控制解决方案

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

黄勇
2013/11/03
2.6K
6
CAS环境下的AJAX跨域

情况说明: 在单点登录的环境下,所有的文件上传都是通过webuploader上传到文件管理服务器。而webuploader的上传可以参考ajax的请求,相当于是跨域操作。 首先,跨域请求访问的问题,可以通过...

战五渣
2015/10/09
90
0
Axios源码深度剖析 - AJAX新王者

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

wanghairong-i
05/28
0
0
Charles使用指南

Charles使用指南 环境: Mac Charles版本:v4.1.3 charles是Mac上很好用的抓包工具。在需要跨页面的查看所有请求时,Chrome的network已经不能满足这个要求,此时使用charles再好不过了。另外...

李π_π蔚
2017/11/12
0
0
Spring Boot搭建Web项目要点

搭建WEB项目过程中,哪些点需要注意: 1、技术选型: 前端:freemarker、vue 后端:spring boot、spring mvc 2、如何包装返回统一结构结果数据? 首先要弄清楚为什么要包装统一结构结果数据,...

woter
07/09
0
0
类似淘宝的拦截弹出登录如何实现

没有登录的时候我可以浏览好多商品,一旦我执行添加购物车操作就要弹出登录框。现在已经通过拦截器,可以在添加购物车的时候跳转到登录页面,现在想将登录改成弹出框该如何实现? 1,是否需要...

孙青彪
2014/12/03
353
3
spring security ajax登录及返回

序 本文讲述一下如何自定义spring security的登录页,网上给的资料大多过时,而且是基于后端模板技术的,讲的不是太清晰,本文给出一个采用ajax的登录及返回的前后端分离方式。 ajax返回 总共...

xixicat
2017/11/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql 主从复制中遇到的错误!

。。。。。

万建宁
14分钟前
0
0
DUBBO 详细介绍

摘要: 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能 Registry: 服务目录框架...

明理萝
24分钟前
0
1
4 个快速的 Python 编译器 for 2018

简评:Python 和其他的解释型语言一样经常被吐槽性能不行,所以开发人员为了提升性能创建了不少编译器,本文则选取其中的四个做了基准测试。 Python 其实是一种相当快的语言,但它并不像编译...

极光推送
28分钟前
0
0
spring boot注册多个MQ服务器的问题

关于注册到多个MQ源的文章已经有很多了,这里记录一下声明queue的坑; 如果使用注册bean的方式声明queue,会导致声明的queue同时被注册到所有的MQ源上; //如果使用下面的声明方式,que...

placeholder
29分钟前
0
0
Java面试基础篇——第九篇:BIO,NIO,AIO的区别

现在IO模型主要分三类:BIO(同步阻塞IO),NIO(同步非阻塞IO),AIO()。 先来看看BIO。 1. BIO 服务端接受到请求后,要指派或新建一个线程去处理客户端的IO请求,直到收到断开连接的指令。这么做...

developlee的潇洒人生
34分钟前
0
0
@RequestMapping @ResponseBody 和 @RequestBody 用法与区别

1.@RequestMapping 国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为...

特拉仔
36分钟前
1
0
基于 HTML5 结合互联网+ 的 3D 隧道

前言 目前,物资采购和人力成本是隧道业发展的两大瓶颈。比如依靠民间借贷,融资成本很高;采购价格不透明,没有增值税发票;还有项目管控和供应链管理的问题。成本在不断上升,利润在不断下...

xhload3d
38分钟前
0
0
济南小程序热度分析

原文链接:http://www.jnqianle.cn/company/2072.html

tianma3798
39分钟前
1
0
大数据软件

beats 采集 kafka spark hive es grafana zeppelin

ArlenXu
41分钟前
0
0
Mac item2常用快捷键

标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:command + f 分屏 水平分屏:command + d 垂直分屏:c...

说回答
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部