说到项目中解决跨域的方法,不得不提一下这个工具
代理 /api 请求在 http://www.example.org 主机名下。能够这样配置:html
var express = require('express'); var proxy = require('http-proxy-middleware'); var app = express(); app.use('/api', proxy({target: 'http://www.example.org', changeOrigin: true})); app.listen(3000); // http://localhost:3000/api/foo/bar -> http://www.example.org/api/foo/bar
假如咱们本地服务在192.168.0.112上,如上配置后,请求192.168.0.112:8080/api就会经过中间件请求到www.example.org/api这个接口,从而解决跨域问题,也就能够不用charles了(这个软件跑起来太浪费内存了),但若是想要抓包、打接口断点、修改接口数据等操做,仍是须要强大的charles的。
在经过Vue脚手架构建的项目中,webpack-dev-server是已经被加到项目中了,webpack
devServer: { clientLogLevel: 'warning', historyApiFallback: { rewrites: [ { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, ], }, hot: true, contentBase: false, // since we use CopyWebpackPlugin. compress: true, host: HOST || config.dev.host, // host:ip.address(), port: PORT || config.dev.port, open: config.dev.autoOpenBrowser, overlay: config.dev.errorOverlay ? { warnings: false, errors: true } : false, publicPath: config.dev.assetsPublicPath, proxy: config.dev.proxyTable, //代理设置 quiet: true, // necessary for FriendlyErrorsPlugin watchOptions: { poll: config.dev.poll, } }
经过config/index.js中能够配置proxyTable这个选项。其参数和http-proxy-middleware是一致的。git
charles是工做中经常使用的一个工具,在移动端开发中,它的用途主要是:1.网络访问代理服务器,使得全部的网络访问请求都经过它来完成,解决在接口调试过程当中的跨域问题;2.截取http和https的网络封包github
这里设置的代理的端口,设置完后,在手机上添加HTTP代理,ip为电脑ip地址web
这里是设置网络请求重定向到另外一个网址请求地址,进而能够解决跨域的问题。From中的IP和端口就是本地起的服务的ip和端口,而To的地址就是接口的地址。express
这一步是给电脑安装证书
而后信任此证书
手机和电脑需在同一个网段,手机设置HTTP代理后,用浏览器访问chls.pro/ssl 安装证书
而后选择help-sslProxying->install charles Root Certificate on a Mobileapi
设置好了,而后设置要抓的https的请求,端口通常就写*
手机设置-通用-信任下载的Charles代理
设置->通用-关于本机-证书信任设置开关打开
手机上https请求的包就能够抓到了。跨域