认真的用fiddle处理跨域

相信很多前端的同学都或多或少被跨域这个问题烦恼过,网上很多处理的方式其实都是要后端处理,
用fiddle来处理 ,就不必看后端的脸色了,自己安安心心的倒腾接口,何乐而不为。

在使用fiddle处理跨域之前,所需要注意的:

  • 1、是http请求还是的https请求,如果是https请求的话,要导入下证书,具体的步骤的:
  • 2、下载证书 点击下载
  • 3、下载完后双击安装即可。
  • 4、然后是fiddle的一些配置,可以参考下这篇文章只需要看前面半部分的配置即可
  • 5、可以输入 https://www.baidu.com 测试下是否能够捕获https请求。
  • 6、到这里前期工作基本完成。
要区分需要处理跨域的场景

1、网上百花撩乱的fiddle处理方式

如果去搜索fiddle处理跨域,想必会搜索出来满屏幕的fiddle的处理方式。
不能用的不能说是错的,只是可能不适用当前自己所需要的场景。

2、场景1,用本地的文件来替代网络上的文件,进行规则替换

这类的文章少说占了搜索结果的一半,

例如csdn的一篇 前端开发fiddler跨域请求代理

实际上就是对线上的文件进行替换,单个替换,正则匹配都行。

替换成功后,便可以在本地修改代码使之生效。

3、场景2,修改的Customize Rules,通常我们都这这类去修改规则,才能解决自己的跨域问题

值得注意的是,在这个场景值其实也分为两块,一块是在OnBeforeRequest中,还有一块是在OnBeforeResponse中,
就是一个发送请求之前,另一个是在发送请求之后响应之前
搞清楚了这个以后,就很容易知道自己在哪个地方,去添加什么代码了

如图所示:

具体举例说明:

1、当需求在请求返回的时候解决跨域,要设置 Access-Control-Allow-Origin:*

       static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
oSession.responseCode=200;
oSession.oResponse.headers.Add("Access-Control-Allow-Headers", "content-type,x-requested-with");
oSession.oResponse.headers.Add("Access-Control-Allow-Origin","*");
}

可以参考 这篇文章

2、当要设置请求头部的时候,就需要在OnBeforeRequest做文章了

  if (oSession.HostnameIs("xxx.xxx.com")){
oSession.oRequest.headers.Remove("Origin");
}

例如可以针对特定的域名移除掉Origin

此外也可以处理重定向

      var origin_host="172.16.11.21";
var origin_port="8080";
var origin_domain=origin_host+":"+origin_port;
var replace_host="www.hongbaorili.com";
var replace_port="80";
var replace_domain=replace_host+":"+replace_port; if(oSession.host==origin_domain){
oSession.host=replace_domain;
} if ( (oSession.PathAndQuery == (origin_host+":"+origin_port))) {
oSession.PathAndQuery = replace_host+":"+replace_port;
}

比如 fiddler重定向本地服务器URL到线上URL

结尾:

其实在Customize Rules.js这个文件中还可以处理很多场景下的东西,有兴趣的话可以自己再多研究,另外这一篇文章,也介绍的蛮多详情点,点击这里

这段时间都一直浸淫在小程序当中,有愿意讨论的童鞋欢迎,目前小程序已稳定上线2个多月,社区类的小程序。

转载请注明原文地址 https://www.cnblogs.com/star-wind/p/10341573.html:谢谢

我的github,欢迎拍砖

使用fiddle处理跨域的更多相关文章

  1. Ajax及跨域

    概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...

  2. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

  3. ASP.NET Web API 跨域访问(CORS)

    一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...

  4. 解决cookie跨域访问

    一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...

  5. 关于python的bottle框架跨域请求报错问题的处理

    在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态却是200.url直接在浏览器访问也是正常的,浏览器按F12 ...

  6. JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

    一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...

  7. 跨域问题,前端主动向后台发送cookie

    跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同  http://www.baidu.com:80 和 https:/ ...

  8. Vue.js——基于$.ajax实现数据的跨域增删查改

    概述 之前我们学习了Vue.js的一些基础知识,以及如何开发一个组件,然而那些示例的数据都是local的.在实际的应用中,几乎90%的数据是来源于服务端的,前端和服务端之间的数据交互一般是通过ajax ...

  9. HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术

    最近做项目在前端我使用了很多新技术,这些技术有bootstrap.angularjs,不过最让我兴奋的还是使用了HTML5的技术,今天我想总结一些HTML5的技术,好记性不如烂笔头,写写文章可以很好的 ...

随机推荐

  1. 发现CVE-2018-11512-wityCMS 0.6.1 持久型XSS

    CMS(内容管理系统)很适合被用来做代码审计,尤其是现在CMS系统越来越流行,很多人愿意使用CMS搭建自己的项目.由于大部分CMS是一种开源项目,所以对于CMS的审计属于白盒测试,白盒测试让我们可以发 ...

  2. MySQL:字符串字段加索引

    1. 使用方式 1.1 全字段加索引 给整个字段加索引,索引存储整个字段的值. 数据量较小时,查询成本高,准确度高: 数据量较大时,比较耗费空间: 1.2 前缀索引 MySQL支持前缀索引,可以定义字 ...

  3. 从github clone文件: Failed to receive SOCKS4 connect request ack.

    安装了代理,能上网,也能从github上下载文件,就是无法从github上clone文件, 查了很久资料后,终于发现使用sudo可以解决问题.不过,不知道原因是什么? 比如:git clone htt ...

  4. LeetCode: 103_Binary Tree Zigzag Level Order Traversal | 二叉树Zigzag层次遍历 | Medium

    本题也属于层次遍历的变形,不同之处在于其遍历的方法是交替进行的,形成一个ZigZag的曲线形式,如下: 代码如下: struct TreeNode { int val; TreeNode* left; ...

  5. Java 基础学习总结(一)抽象类和接口

    接触java的时间不是很长,以前对抽象类和接口的定义和区别也是模糊不清,最近拿起学校的教程读了起来,也参阅了网上的博客大神理解和总结,于是决定自己按照自己的理解来总结一下. 抽象类(半成品)   一般 ...

  6. 理解 Python 的执行方式,与字节码 bytecode 玩耍 (下)

    上次写到,Python 的执行方式是把代码编译成bytecode(字节码)指令,然后由虚拟机来执行这些 bytecode 而 bytecode 长成这个样子:  b'|\x00\x00d\x01\x0 ...

  7. Linux学习笔记之九————ubuntu软件安装与卸载

    一.更新 源 1. 寻找国内镜像源 所谓的镜像源:可以理解为提供下载软件的地方,比如Android手机上可以下载软件的91手机助手:iOS手机上可以下载软件的AppStore 2. 备份Ubuntu默 ...

  8. Django--视图函数views

    1 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...

  9. 对话Task

    上一篇简单讲解了 线程和线程池以及上下文切换.创建线程代价高昂,默认每个线程都要占用大量虚拟内存1M.更有效的做法使用线程池,重复利用线程.在.NET4.0中引入了TPL任务并行库,你可以在将精力集中 ...

  10. Zabbix4.2.0使用Python连接企业微信报警

    目录 1. 配置企业微信 2. 脚本配置 2.1 安装python依赖的库 2.2 编写脚本 2. 搭建FTP 3. 配置Zabbix监控FTP 3.1 添加FTP模板 3.2 添加报警媒介 3.3 ...