已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错

这篇具有很好参考价值的文章主要介绍了已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错

problem

已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错
控制台仍然出现cors禁止报错,接口调不通

reason

配置proxy代理解决跨域问题的原理是:

  • 前端工程本地环境会启动一个 express 或 koa 的web服务 例如 http://localhost:3000
  • 后端接口 可能是ip 有可能是dev的域名 例如 http://dev.com/api

前端页面通过axios调用后端接口,

  • 如果直接从浏览器发起请求,相当于 浏览器(3000端口) 向 http://dev.com/api 发起请求,属于跨域,会被cors阻止
  • 如果是浏览器->express/koa->后端,则属于2个web server后端之间发起请求,浏览器-> http://localhost:3000 -> http://dev.com/api 不属于跨域,不会出现cors阻止问题

proxy实现跨域常见配置如下

module.exports={
   devServer: {
        proxy: {
            "/api": {
                target: "http://dev.com", // 接口的域名
                changeOrigin: true                
            }
        },
    },
}

导致上面问题的原因,经过排查是: axios写死了http的prefix为 http://dev.com/api, 直观从控制台看到浏览器直接向后端发请求 也就是 http://dev.com/api

solution

axios的http请求的prefix不要写死,改为 ‘/’ 即可, 此时控制台可以看到浏览器请求目标是 http://localhost:3000文章来源地址https://www.toymoban.com/news/detail-788745.html

到了这里,关于已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue.config.js中proxy配置

    这里以axios发请求为例 如果发送的请求都以 /abc 开头,那么我们就可以在proxy中进行服务器代理配置。 3.代理多个接口 方法1:监测多个接口,可以在proxy中写多个配置:(适用于target不同的代理,相同也可以用这个方法,就是会麻烦一点,对于相同的target方法2会比较方便)

    2024年02月22日
    浏览(23)
  • Vite 配置代理 Proxy,Vue配置代理,解决前端跨域

    我们在做项目的时候经常会遇到跨域的问题,之所以会出现跨域问题是因为浏览器的同源策略,即协议、域名、端口需要一致,才可以访问服务端的资源。当一个请求地址(服务端的地址)的协议、域名、端口三者之间任意一个与当前页面地址(前端页面地址)不同即为跨域

    2024年02月17日
    浏览(26)
  • vue.config.js使用代理配置真实请求url

    前端请求接口过程中会统一配置代理请求url,配置之后浏览器只能看到local host路径。 为方便查看请求的真实ip,需要在vue.config.js中做如下配置,便能在浏览器实时查看到真实地址 配置完重启,效果如下:

    2024年02月13日
    浏览(31)
  • vue2的vue.config.js中简单配置代理跨域

    调用后端接口访问后台数据,但是因为请求url的协议、域名、端口三者之间任意一个与当前页面url不同产生了跨域,我们vue项目运行的地址一般就是localhost 8080端口,而且后端也没有配置允许跨域(后端如果配置跨域通常是cors),所以前端就要配置跨域,Vue跨域在vue.config.j

    2024年02月15日
    浏览(16)
  • vue3项目vite.config.js配置“代理”、“端口”、“打包名”、“图片压缩”

    前言 我们在搭建vue3项目的时候不可避免的会遇到“代理”、“端口”、“打包名”、“图片压缩”等配置问题,本文逐一讲述该怎么样在vite.config.js中去配置。 一、配置代理端口和代理转发 vite.config.ts添加如下代码 ts.config.json添加如下代码 图片压缩先要引入vite-plugin-imagem

    2024年02月07日
    浏览(41)
  • UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)

    UniApp 运行到浏览器的时候,接口会跨域报错,这里通过两种方式解决,第一:修改Uniapp自带的manifest.json 源码视图并进行配置h5设置。第二:在项目根目录新建vue.config.js并配置代理。 二选一即可。 修改或调整配置文件后,推荐重新运行,以防不生效。 配置完成后,请求接口

    2024年01月16日
    浏览(24)
  • vue中vite.config.js配置跨域以及环境配置详解

    我们的 .env.development 和 .env.production 文件里面都会有 VITE_APP_ENV 配置: 在我们的 vite.config.js文件中: 以上是 vite.config.js 的配置,上面展示了在不同环境下去请求对应环境的域名并且配置代理进行跨域. 1.在vue.config.js中设置一下代码: 2. 创建axioss实例时,将baseUrl设置为 \\\'/api\\\'

    2024年02月15日
    浏览(23)
  • vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法

    由于vue为单页面项目,通过控制组件局部渲染,main.js是整个项目唯一的入口,整个项目都在一个index.html外壳中。 若项目过大,会造成单页面负载过重;同时,多页面利于模块独立部署。 如果项目中不同的页面需要不同的main.js和App.vue这样就需要配置多个入口了。 要单独将页

    2024年01月22日
    浏览(61)
  • 前端开发服务器中的 Proxy 代理跨域实现原理解读

    各位朋友你们好,我是 桃小瑞 ,微信公众 @ 桃小瑞 。在这给大家拜个晚年,祝各位朋友新年快乐。 在前端的开发过程中,尤其是在浏览器环境下,跨域是个绕不开的话题,相信每个前端都会涉及到这个问题,记住的就直接手敲解决跨域问题,记不住的就只能问度娘了。😂😂

    2024年01月16日
    浏览(26)
  • vue cli 打包、生产环境http-proxy-middleware代理

    结构树 版本 1、创建vue.config.js 如果采用了本地cdn则index.html 2、创建ecosystem.config.js 3、创建himdcs.js 4、修改package.json 5、部署到docker 6、http-proxy-middleware参数说明 option.target:url字符串将与url模块解析 option.forward:url字符串将与url模块解析 option.target:传递给http(s)请求的对象(参

    2024年02月09日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包