• 首页
  • 狐文
  • 狐图
  • About
狐窝
OvO
  1. 首页
  2. 未分类
  3. 正文

拦截Http请求/Jquery【Ajax】

2017年08月07日 78点热度 0人点赞 0条评论

2016.06.01 15:07 from---http://www.jianshu.com/p/b6098500f2a9

在工作中往往需要对整个站点的请求做统一处理。

例如:

1.在发送请求之前,添加统一的验证头。

2.请求返回时,捕捉每一个响应,做统一处理(403无权限,500服务器错误)。

在本文中,将展示在简单情况下使用不同方式实现拦截器。


JavaScript (XMLHttpRequest)

假设我们需要在所有请求中加入验证头来确认用户身份,在以下代码中修改XMLHttpRequest原型。

```

(function(open) {

XMLHttpRequest.prototype.open =function(method, url, async, user, pass) {

this.addEventListener("readystatechange",function() {

if(this.readyState == 4)

{

//在这可以获取到response数据,并且修改

console.log(this.status);

}

}  ,false);

open.call(this, method, url, async, user, pass);

//在这添加自定义数据

this.setRequestHeader("Authorization","Token 123")

};

})(XMLHttpRequest.prototype.open);

```

DEMO:

varoReq =newXMLHttpRequest();

oReq.open("get","www.example.com",true);

oReq.send();


JQuery

jquery中有很简单的方法去处理以上问题,在jquery库中封装了一个Http对象。

在拦截发送请求之前可以使用:

$.ajaxSetup({

beforeSend:function(xhr) {

xhr.setRequestHeader('Authorization','Token 123')

}

});

在接受到数据后做统一处理

$( document ).ajaxSuccess(function( event, request, settings ) {

console.log(request.status);

});

$( document ).ajaxError(function( event, request, settings ) {

console.log(request.status);

if (request.status == 401) {

alert("没有权限,请登录。");

}

});

作者:只有可乐的米店
链接:http://www.jianshu.com/p/b6098500f2a9
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签: 暂无
最后更新:2017年08月07日

OvO

狐狸

点赞
< 上一篇
下一篇 >
最新 热点 随机
最新 热点 随机
钛备份或小米系统备份功能备份出来的APK无法正常还原 BBR安装启用 安装docker mitmproxy 调试方法 Android SDK 版本选择 Perdition Mail代理服务器配置 HAProxy SSL代理 Openssl 中间人SSL代理 Stunnel SSL to SSL代理 NGINX反代IMAP配置 各种设备User Agent Torrent下载工具推荐 用 rar2john+hashcat 破解 RAR 文件密码 2020最好的Linux发行版 关闭新版chrome工具栏上拼图图标 Office 下载、安装、激活,有它就够了! Android 非官方的发行版 openwrt添加autoconf-archive
Centos7.4源码编译安装GCC7.2.0 Aria2 使用手札(简易部署 + 快速进阶) udev控制磁盘引导顺序 JDBC连接数据库使用SERVICE NAME、SID以及TNSName不同写法 类树莓派单板电脑汇总 python selenium 爬虫页面滚动条滚动到页面底部 JDK、JRE、JVM之间的关系 【插件】再谈网络运维人员的火狐(firefox)扩展 Office 下载、安装、激活,有它就够了! CentOS 7 下使用 Firewall mybatis以map为参,动态生成表并插入数据 Debian相关WIKI信息 Stunnel SSL to SSL代理 双层动态图片保护Email地址 解決Linux系統的中文變成細明體或是標楷體的問題 系统守护进程inetd、xinetd与独立守护进程standalone Openssl 中间人SSL代理 Java 企业级开发项目框架
标签聚合
密码 git chrome chromium https linux 安装 网卡 docker 下载 ssl yum blog e 路由 镜像

COPYRIGHT © 2020 狐窝. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS