相信不少前端的同窗都或多或少被跨域這個問題煩惱過,網上不少處理的方式其實都是要後端處理,
用fiddle來處理 ,就沒必要看後端的臉色了,本身安安心心的倒騰接口,何樂而不爲。javascript
在使用fiddle處理跨域以前,所須要注意的:html
一、網上百花撩亂的fiddle處理方式前端
若是去搜索fiddle處理跨域,想必會搜索出來滿屏幕的fiddle的處理方式。
不能用的不能說是錯的,只是可能不適用當前本身所須要的場景。java
二、場景1,用本地的文件來替代網絡上的文件,進行規則替換git
這類的文章少說佔了搜索結果的一半,github
例如csdn的一篇 前端開發fiddler跨域請求代理小程序
實際上就是對線上的文件進行替換,單個替換,正則匹配都行。segmentfault
替換成功後,即可以在本地修改代碼使之生效。後端
三、場景2,修改的Customize Rules,一般咱們都這這類去修改規則,才能解決本身的跨域問題跨域
值得注意的是,在這個場景值其實也分爲兩塊,一塊是在OnBeforeRequest中,還有一塊是在OnBeforeResponse中,
就是一個發送請求以前,另外一個是在發送請求以後響應以前 搞清楚了這個之後,就很容易知道本身在哪一個地方,去添加什麼代碼了
如圖所示:
一、當需求在請求返回的時候解決跨域,要設置 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","*"); }
能夠參考 這篇文章
二、當要設置請求頭部的時候,就須要在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; }
其實在Customize Rules.js這個文件中還能夠處理不少場景下的東西,有興趣的話能夠本身再多研究,另外這一篇文章,也介紹的蠻多詳情點,點擊這裏
這段時間都一直浸淫在小程序當中,有願意討論的童鞋歡迎,目前小程序已穩定上線2個多月,社區類的小程序。
轉載請註明原文地址 https://www.cnblogs.com/star-wind/p/10341573.html:謝謝
個人github,歡迎拍磚