初學(xué)前端,接口聯(lián)調(diào)過程時(shí),想像客戶端app一樣,能利用代理直接將接口代理,使用MapLocal將本地文件設(shè)置為接口Response結(jié)果,這樣本地聯(lián)調(diào)頁面比較靈活,準(zhǔn)備好本地文件,Charles開啟Mac OX Proxy和配置MapLocal后,本地啟動(dòng)web工程,但由于是localhost地址,請(qǐng)求服務(wù)時(shí)會(huì)遇到跨域問題,chrome dev tools控制臺(tái)報(bào)錯(cuò):
Access to fetch at 'https://*********/config?id=9' from origin 'https://*******' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
意思是跨域了,需要配置'Access-Control-Allow-Origin' header。設(shè)置方式:
Charles - Tools - Rewrite 中
1.選中【Enable Rewrite】
2.點(diǎn)擊Add,起個(gè)名字,比如叫「LocalCros」
3.點(diǎn)擊3處的Add,將需要代理接口的host填進(jìn)去,端口post一般是http填80,https填443,然后點(diǎn)擊OK
4.填寫跨域配置,點(diǎn)擊4處的Add,Type選Add Header,下面的值Name填:「Access-Control-Allow-Origin」,值Value填「*」,選中「Replace All」點(diǎn)擊OK保存。注意where選項(xiàng),選Response。
現(xiàn)在試試:是的,你沒看錯(cuò),還有問題。莫慌,再往下看:
去看下控制臺(tái)的錯(cuò)誤,可能提示你 不能用*,怎么辦,修改這個(gè)4的配置,改成你自己的host地址。
上一步4中的Name-Vaule對(duì)這樣添加:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:r-url,ticket,Cookie,DNT,Custom-Header,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Disposition,x-real-ip,x-real-ipv6,x-forwarded-for,X-Auto-Driver-Token,X-Auto-SP-Token,X-Auto-ChannelId,X-Image-Accept-WebP,X-OmgId,X-Custom-Header
Access-Control-Allow-Methods:GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Origin:http://127.0.0.1:8081(你工程本地run后的訪問地址)
配置完是這樣的:
然后,就可以愉快地任意mock數(shù)據(jù)了。