时间:2021-05-26
Webpack dev server使用http-proxy解决跨域问题
文档资料
webpack关于webpack-dev-server开启proxy的官方介绍
Vue-cli proxyTable 解决开发环境的跨域问题——虽然这篇是写vue的,不过用在webpack-dev-server上也是一样的
http-proxy-middleware——webpack-dev-server的实现方法其实是对这个的封装
配置http-proxy
在webpack的配置文件(webpack.config.js)中进行配置
上述配置中,关于http-proxy的只是 proxy:
{...} 中的值
调用接口
为了方便起见,下面使用jquery封装好的ajax函数进行示范
$.ajax({ // url: 'http://10.0.0.9:3000/test/testFetch/Login.php', // 这样不行 url: '/test/testFetch/Login.php', // 这样行 type: 'post', data: { app_id: '13751313169', password: '123456', user_name: 'Nicholas' }, success: function(data) { console.log(data); }});proxy中的部分参数说明
'/test/*' 以及 target:
'http://localhost'
从名字就能看出,这个实际上是将匹配 '/test/*' 这种格式的API的域名重定向为 'http://localhost'
结合上面的 “调用接口” 可以看出, url:
'/test/testFetch/Login.php' 这句,实际上会自动补充前缀,也就是说,url:
'/test/testFetch/Login.php' 等价于 url: 'http://10.0.0.9:3000/test/testFetch/Login.php'
但是,我们使用了http-proxy进行重定向,这样的话,url:
'/test/testFetch/Login.php' 等价于 url: 'http://localhost/test/testFetch/Login.php'
changeOrigin
secure
pathRewrite
例子: pathRewrite:
{'^/api': ''}
Object-keys will be used as RegExp to match paths
我猜,这里是将 '^/api' 使用 '' 代替(只是我猜,没是成功,估计是我的正则表达式写得不行)
附上使用Fetch API的代码
上述代码与 “调用接口” 中使用 $.ajax() 实现的效果是一样的
let testAsync = async function () { var feeling = { app_id: '13751313169', password: '123456', user_name: 'Nicholas' }; var fetchParams = { method: 'post', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, credentials: 'include', // 将凭证也带上(例如cookies) body: JSON.stringify(feeling), }; let temp = await fetch('/test/testFetch/Login.php', fetchParams).then(response => response.text()); console.log(temp); // 这个就是一个json对象 return temp;};let data = testAsync(); // async函数返回值是一个Promise对象console.log(data); // 这个是一个Promise对象以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言目前前端解决跨域,主要是通过webpack的devServer来配置。但是有时候开发环境中没有配置devServer,后端又没有设置跨域。前后端分离项目,本
实现跨域共3个步骤:1,vue3.0根目录下创建vue.config.js文件;module.exports={devServer:{proxy:{'/api'
文档资料webpack关于webpack-dev-server开启proxy的官方介绍Vue-cliproxyTable解决开发环境的跨域问题——虽然这篇是写v
本文介绍了webpack开发跨域问题解决办法,分享给大家,具体如下:1.说明webpack内置了http-proxy-middleware可以解决请求的URL代
Iframe跨域自适应高度(兼容IE/Firefox)终极解决方案main.html在A域,被包含的iframe.html、proxy.html以及proxy.