vue项目中常用解决跨域的方法总结(CORS和Proxy)

 更新时间:2022年12月05日 09:10:32   作者:是大林的林吖  
在vue项目中,一般我们会遇到跨域的问题,vue项目中解决跨域是非常简单的,下面这篇文章主要给大家介绍了关于vue项目中常用解决跨域的方法,主要解释CROS和Proxy两种方式,需要的朋友可以参考下

一、什么是跨域?

跨域问题的出现是因为浏览器的同源策略问题。所谓同源就是必须有以下三个相同点:协议相同、主机相同、端口相同。如果其中有一项不同,即出现非同源请求,就会产生跨域。当我们请求一个接口的时候,出现如:Access-Control-Allow-Origin 字眼的时候说明请求跨域了

二、如何解决跨域?

跨域的解决方案:

jsonp
cors
Node中间件代理(两次跨域) 即 Proxy
nginx反向代理 CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案
JSONP只支持GET请求,JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。
不管是Node中间件代理还是nginx反向代理,主要是通过同源策略对服务器不加限制。
日常工作中,用得比较多的跨域方案是cors和nginx反向代理

主要解释CROS和Proxy两种方式

1、CROS

  • CROS是 Cross-Origin Resource Sharing的缩写,翻译过来就是跨域资源共享的意思。它由一系列传输的HTTP头组成,这些HTTP头会决定浏览器是否阻止前端 JavaScript代码获取跨域请求的响应。
  • CORS的实现比较简单方便,只需要增加一些 HTTP头,让服务器能声明允许的访问来源。只要后端实现了 CROS就实现了跨域。

2、Proxy(代理)

  • 通过启动本地服务器进行代理转发目标服务器。而跨域只针对于浏览器,对于node服务发出的请求是不会出来跨域的,从而解决了跨域的问题。
  • 在vue.config.js文件

1、可配置多个不同的proxy

devServer: {
    proxy: {
      '/api': {//代理标识,一般是每个接口前的相同部分
        target: 'http://23.15.11.15:8000', // 这里写的是访问接口的域名和端口号
        changeOrigin: true, // 允许跨域请求
        pathRewrite: { // 重写路径,替换请求地址中的指定路径
          '^/api': '/user'
        }
      },
      '/login': {
		 target: 'http://23.15.11.15:8000',
		 changeOrigin: true,
		 pathRewrite:{
		   '^/login':''  //替换成空
		 }
	   }
    }
  },

示例:

  • http://localhost:8080/api/test --> http://23.15.11.15:8000/user/test
  • http://localhost:8080/login/index–> http://23.15.11.15:8000/index

2、对所有的接口都代理

devServer: {
 proxy: 'http:/www.ljc.com'
}

示例:

  • http://localhost:8080/api/test --> http://www.ljc.com/api/test
  • http://localhost:8080/login/index–> http://www.ljc.com/login/index

总结

到此这篇关于vue项目中常用解决跨域的文章就介绍到这了,更多相关vue解决跨域方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VUE3中实现拖拽与缩放自定义看板vue-grid-layout详解

    VUE3中实现拖拽与缩放自定义看板vue-grid-layout详解

    想实现桌面自由拖拽布局的效果,找到了vue-grid-layout栅格布局插件,可以完美解决,下面这篇文章主要给大家介绍了关于VUE3中实现拖拽与缩放自定义看板vue-grid-layout的相关资料,需要的朋友可以参考下
    2023-02-02
  • vue中watch监听不到变化的解决

    vue中watch监听不到变化的解决

    本文主要介绍了vue中watch监听不到变化的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • vue2中的el-select组件数据太多,如何实现滚动加载数据效果

    vue2中的el-select组件数据太多,如何实现滚动加载数据效果

    这篇文章主要介绍了vue2中的el-select组件数据太多,如何实现滚动加载数据效果,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • 详解webpack + vue + node 打造单页面(入门篇)

    详解webpack + vue + node 打造单页面(入门篇)

    本篇文章主要介绍了详解webpack + vue + node 打造单页面(入门篇) ,非常具有实用价值,需要的朋友可以参考下
    2017-09-09
  • 前端Vue如何获取登录的用户名或用户id代码实例

    前端Vue如何获取登录的用户名或用户id代码实例

    在前端开发中,获取登录用户的用户名是一项常见的需求,这篇文章主要给大家介绍了关于前端Vue如何获取登录的用户名或用户id的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • 一步步从Vue3.x源码上理解ref和reactive的区别

    一步步从Vue3.x源码上理解ref和reactive的区别

    vue3的数据双向绑定,大家都明白是proxy数据代理,但是在定义响应式数据的时候,有ref和reactive两种方式,如果判断该使用什么方式,是大家一直不很清楚地问题,下面这篇文章主要给大家介绍了关于从Vue3.x源码上理解ref和reactive的区别的相关资料,需要的朋友可以参考下
    2023-02-02
  • Vue实战之vue登录验证的实现代码

    Vue实战之vue登录验证的实现代码

    本篇文章主要介绍了Vue实战之vue登录的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Vue2.0实现1.0的搜索过滤器功能实例代码

    Vue2.0实现1.0的搜索过滤器功能实例代码

    本篇文章主要介绍了Vue2.0实现1.0的搜索过滤器功能实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 浅谈Vue render函数在ElementUi中的应用

    浅谈Vue render函数在ElementUi中的应用

    今天小编就为大家分享一篇浅谈Vue render函数在ElementUi中的应用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue开发项目中如何使用Font Awesome 5

    Vue开发项目中如何使用Font Awesome 5

    Font Awesome是一套流行的图标字体库,我们在实际开发的过程中会经常遇到需要使用图标的场景,对于一些常用的图标,我们可以直接在Font Awesome中找到并且使用,这篇文章主要给大家介绍了关于Vue开发项目中如何使用Font Awesome5的相关资料,需要的朋友可以参考下
    2021-11-11

最新评论