首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >webpack配置proxy反向代理,解决跨域问题

webpack配置proxy反向代理,解决跨域问题

作者头像
青梅煮码
发布于 2023-01-14 08:02:37
发布于 2023-01-14 08:02:37
3K00
代码可运行
举报
文章被收录于专栏:青梅煮码青梅煮码
运行总次数:0
代码可运行

目的:为了解决前端和后端联调数据,出现的跨域问题,通过配置反向代理,可以更好的联调数据

常见跨域场景

(1)同一域名,不同端口 http://www.qmblog.cn:8000/a.js http://www.qmblog.cn/b.js (2)同一域名,不同协议 http://www.qmblog.cn/a.js https://www.qmblog.cn/b.js (3)域名和域名对应相同ip http://www.dqmblog.cn/a.js http://127.0.0.1/b.js (4)不同域名 http://www.demo1.com/a.js http://www.demo2.com/b.js

前端常用解决方案

(1)通过jsonp跨域:只能发get请求,数据量不能超过4K (2)跨域资源共享(CORS):需服务端设置Access-Control-Allow-Origin即可,前端无须设置,若要带cookie请求:前后端都需要设 (3)反向代理:在浏览器中创建了代理服务器,缺点渲染效率降低

反向代理

配置反向代理
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//vue-cli3.0 里面的 vue.config.js做配置
const url = 'http://192.168.0.111:9999' //服务器端接口地址
module.exports = {
  //...
  devServer: {
    proxy: {
        '/api': {                //这里最好有一个 /
            target: url,         // 服务器端接口地址
            ws: true,            //如果要代理 websockets,配置这个参数
            secure: false,       // 如果是https接口,需要配置这个参数
            changeOrigin: true,  //是否跨域
            pathRewrite:{'^/api':''}
        }
    }
  }
};

此时访问的接口地址在本地被解析为localhost:8080/api/***

访问的真实地址是http://192.168.0.111:9999***

正向代理隐藏真实客户端地址,反向代理则隐藏真实服务端地址

详情

http://192.168.0.111:9999上有后端服务的话,你可以这样启用代理:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': 'http://192.168.0.111:9999'
    }
  }
};

请求到/api/users现在会被代理到请求http://192.168.0.111:9999/api/users

如果你不想始终传递 /api ,则需要重写路径:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': {
        target: 'http://192.168.0.111:9999',
        pathRewrite: {'^/api' : ''}
      }
    }
  }
};

默认情况下,不接受运行在HTTPS上,且使用了无效证书的后端服务器。如果你想要接受,修改配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': {
        target: 'https://other-server.example.com',
        secure: false
      }
    }
  }
};

如果你想要代理多个路径特定到同一个 target 下,你可以使用由一个或多个「具有 context 属性的对象」构成的数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
  //...
  devServer: {
    proxy: [{
      context: ['/auth', '/api'],
      target: 'http://192.168.0.111:9999',
    }]
  }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue跨域解决方案反向代理_怎么解决跨域问题
Access to XMLHttpRequest at ‘http://192.168.2.92:3000/api/b/home’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: It does not have HTTP ok status.
全栈程序员站长
2022/11/10
9270
vue跨域解决方案反向代理_怎么解决跨域问题
5-4 使用 webpack-dev-server 实现请求转发
请求转发,其实是使用 webpack-dev-server 的代理功能来实现的,本节为大家介绍 webpack-dev-server 的代理功能和主要使用场景。
love丁酥酥
2020/05/09
2.6K0
5-4 使用 webpack-dev-server 实现请求转发
Vue Nginx反向代理配置 解决生产环境跨域
Vue 本地代理编辑好后,能实现跨域获取接口数据,但是打包后在生产环境接口报错404,要怎样才能解决生产环境跨域问题呢? 在开发环境配置好本地代理后,使用Nginx反向代理解决生产环境跨域问题!
Tz一号
2020/09/10
4.7K0
你真的了解跨域吗
相信每个前端对于跨域这两个字都不会陌生,在实际项目中应用也很多,但跨域方法的多种多样让人目不暇接,前段时间公司同事出现了跨域问题,又一时找不到问题所在,所以在此总结下跨域知识,一篇由浅入深的万字Web基操文
isboyjc
2022/03/28
2.6K0
你真的了解跨域吗
聊聊Webpack Proxy工作原理?为什么能解决跨域?
想要实现代理首先需要一个中间服务器,webpack中提供服务器的工具为webpack-dev-server
@超人
2021/09/17
1.4K0
聊聊Webpack Proxy工作原理?为什么能解决跨域?
vue前端跨域解决方案有哪些_前端能完全解决跨域问题吗
我们可以利用axios的baseUrl直接默认值是 api,这样我们每次访问的时候,自动补上这个api前缀,就不需要我们自己手工在每个接口上面写这个前缀了 在入口文件里面配置如下:
全栈程序员站长
2022/11/10
1K0
SpringBoot与Vue交互解决跨域问题【亲测已解决】
最近在利用springboot+vue整合开发一个前后端分离的个人博客网站,所以这一篇总结一下在开发中遇到的一个问题,关于解决在使用vue和springboot在开发前后端分离的项目时,如何解决跨域问题。在这里分别分享两种方法,分别在前端vue中解决和在后台springboot中解决。
灰小猿
2021/12/17
2K0
SpringBoot与Vue交互解决跨域问题【亲测已解决】
「前端必看」这篇Nginx反向代理技巧,助你准时下班陪女神
相信很多前端朋友在线上debug时都吐槽过npm run dev或npm start太费时的问题吧(这里提到的两条npm脚本代指启动前端dev server)。
程序员白彬
2020/07/10
2.2K0
「前端必看」这篇Nginx反向代理技巧,助你准时下班陪女神
vue之解决跨域问题[通俗易懂]
因为浏览器同源策略的影响,向后端服务器请求数据的时候,不能进行访问。 可以采用代理服务器的方式,代理服务器:
全栈程序员站长
2022/09/30
2620
vue之解决跨域问题[通俗易懂]
在Vue项目中配置代理来解决跨域问题
在Vue项目中配置代理来解决跨域问题非常简单。可以使用Vue的开发服务器来代理API请求。
王小婷
2023/09/22
2.4K0
前端开发本地代理详解:根据不同环境自动设置请求地址和接口代理
一般开发项目除了正式的生产环境,还会有对应的开发环境、测试环境和预发布环境,每个环境所访问的接口地址肯定不一样,如果自己一个个手动修改那就太不程序猿了。
人人都是码农
2023/11/17
2.4K0
前端开发本地代理详解:根据不同环境自动设置请求地址和接口代理
vue vuecli3 前端解决跨域问题
指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。
kirin
2020/07/28
1.1K0
无界微应用访问Next.js项目跨域问题的解决方案
Next.js 是一个基于 React 的开发框架,它提供了很多强大的功能,如服务器端渲染、静态网站生成、API路由等。
德顺
2023/08/25
2.5K0
无界微应用访问Next.js项目跨域问题的解决方案
解决 Vue 使用 Axios 进行跨域请求的方法详解
在开发现代 Web 应用时,前端和后端通常分离部署在不同的服务器上,这就会引发跨域请求问题。浏览器的同源策略(Same-Origin Policy)会阻止跨域请求,除非后端服务器配置了允许跨域请求的 CORS(Cross-Origin Resource Sharing)头。本文将详细介绍如何在 Vue 项目中使用 Axios 发起跨域请求时解决跨域问题。
繁依Fanyi
2024/08/02
3K0
vue前端怎么解决跨域问题_前端跨域调用js方法解决方案
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。
全栈程序员站长
2022/11/04
2.7K0
vue前端怎么解决跨域问题_前端跨域调用js方法解决方案
vue跨域配置
跨域这个词,对前端程序员来说,可谓是屡见不鲜。正好最近在做项目时,又遇到了跨域问题,无奈只能继续去网上查询资料来查看vue如何进行配置。为了方便,最终决定自力更生,自己总结一番,省的之后遇到跨域问题去网上各种查询,浪费时间。
用户6256742
2024/08/13
2470
vue跨域配置
webpack代理proxy配置
前端项目开发中我们经常会用到 proxy 代理来解决接口跨域问题,通常是在 webpack.config.js 或 vue.config.js 或 vite.config.js 中配置:
人人都是码农
2023/11/16
1.2K0
vue 解决跨域问题(开发环境)[通俗易懂]
不同源就是跨域,比如你的前端为localhost:9528,后端为localhost:8080,此时前端去访问后端接口就会产生跨域问题,因为端口不同。
全栈程序员站长
2022/11/04
5.5K1
【.NET Core 3.0】框架之十二 || 跨域 与 Proxy
本文有配套视频:https://www.bilibili.com/video/av58096866/?p=8 一、为什么会出现跨域的问题 跨域问题由来已久,主要是来源于浏览器的”同源策略”。
老张的哲学
2022/04/10
1.6K0
【.NET Core 3.0】框架之十二 || 跨域 与 Proxy
10、webpack从0到1-devServer之数据请求
本章主要就是一个东西,如何配置webpack的devServer.proxy实现代理转发。这个应该是日常开发事情中必见的内容了。 git仓库:webpack-demo 1、开始 既然是请求数据,那么就先安装下axios。 $ cd chapter10 $ npm install axios --save 然后我们在src/index.js文件中使用axios请求一下豆瓣api的接口,拿它电影的前250条数据。 + import axios from "axios"; // ... // 测试devS
Ewall
2020/03/20
5520
10、webpack从0到1-devServer之数据请求
推荐阅读
相关推荐
vue跨域解决方案反向代理_怎么解决跨域问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档