vue 解决跨域问题(开发环境)[通俗易懂]

vue 解决跨域问题(开发环境)[通俗易懂]一、什么是跨域问题同源:域名,协议,端口均相同不同源就是跨域,比如你的前端为localhost:9528,后端为localhost:8080,此时前端去访问后端接口就会产生跨域问题,因为端口不同。这里不详细讲,可参考百度百科-同源策略。二、如何解决跨域问题前后端都可以解决,这里仅提供vue的前端跨域解决方案:前端vue.config.js配置如下,然后保证在你访问后端接口时加个前缀/api。devServer:{port:port,open:false,ov

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、什么是跨域问题

同源:域名,协议,端口均相同

不同源就是跨域,比如你的前端为localhost:9528,后端为localhost:8080,此时前端去访问后端接口就会产生跨域问题,因为端口不同。

这里不详细讲,可参考百度百科-同源策略

二、如何解决

跨域问题前后端都可以解决,这里仅提供vue的前端跨域解决方案:

前端vue.config.js配置如下,然后保证在你访问后端接口时加个前缀/api

devServer: { 
   
    port: port,
    open: false,
    overlay: { 
   
      warnings: false,
      errors: true
    },
    proxy: { 
    // vue2.x版本为 proxyTable,vue3.x为proxy。
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      '^/api': { 
   
        target: 'http://localhost:9999', // 这里的端口是后端端口
        changeOrigin: true,
        secure: false,  // 如果是https接口,需要配置这个参数为true
        pathRewrite: { 
     // 路径重写
          '^/api':''
        }
      }
    }
  }

三、例子

以下例子访问接口的时候都会保证访问的路径为:/api/about/first,包含前缀/api

例1 以axios为例

axios.get('/api/about/first', function (res) { 
    
   console.log(res) 
})

例2 以 vue-element-admin为例

request.js:baseURL这里不写 baseURL

const service = axios.create({ 
   
  // baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  timeout: 10000 // request timeout
})

api/xxx.js: 在接口这里加前缀

import request from '@/utils/request.js'

export default { 
   
  getFirst() { 
   
    return request({ 
   
      url: '/api/about/first',
      method: 'get'
    })
  }
  }

vue.config.js:

devServer: { 
   
    port: port,
    open: false,
    overlay: { 
   
      warnings: false,
      errors: true
    },
    proxy: { 
   
      // change xxx-api/login => mock/login
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      '^/api': { 
   
        target: 'http://localhost:9999', // 这里的端口是后端端口
        changeOrigin: true,
        secure: false,  // 如果是https接口,需要配置这个参数为true
        pathRewrite: { 
   
          '^/api':''
        }
      }
    }
  }

例3 仍以 vue-element-admin为例

request.js:baseURL这里加前缀

const service = axios.create({ 
   
  baseURL: '/api', // url = base url + request url process.env.VUE_APP_BASE_API+'api'
  withCredentials: true, // send cookies when cross-domain requests
  timeout: 5000 // request timeout
})

api/xxx.js:这里不加前缀

import request from '@/utils/request.js'

export default { 
   
  getFirst() { 
   
    return request({ 
   
      url: '/about/first',
      method: 'get'
    })
  }
  }

vue.config.js:

devServer: { 
   
    port: port,
    open: false,
    overlay: { 
   
      warnings: false,
      errors: true
    },
    proxy: { 
   
      // change xxx-api/login => mock/login
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      '^/api': { 
   
        target: 'http://localhost:9999', // 这里的端口是后端端口
        changeOrigin: true,
        secure: false,  // 如果是https接口,需要配置这个参数为true
        pathRewrite: { 
   
          '^/api':''
        }
      }
    }
  }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192600.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 瀑布流式布局怎么实现(什么是瀑布流布局)

    今天逛闲鱼的时候观察到每一行的高度不是相同的,经了解才知道原来这是一种瀑布流布局,感觉挺有意思,于是决定研究一下,在网上也找了一些方案,实现瀑布流大概有3种方式。

    2022年4月18日
    52
  • 学生成绩管理系统-C语言(附源码)[通俗易懂]

    学生成绩管理系统-C语言(附源码)[通俗易懂]#include<stdio.h>#include<string.h>#include<stdlib.h>//结构体structscore{ charsnum[9]; charsname[11]; intchinese; intmath; intenglish; intsumcj; intra…

    2022年6月20日
    30
  • 计算机应用模块数量如何填写,职称计算机考试科目、模块数量介绍

    计算机应用模块数量如何填写,职称计算机考试科目、模块数量介绍原标题:职称计算机考试科目、模块数量介绍全国计算机应用能力考试坚持”实事求是,区别对待,逐步提高”的原则,不同地区、不同部门根据本地区、本部门的实际情况,确定适合本地区、本部门的考试范围要求。1、不同地区和部门自主确定应考科目数量在对专业技术人员计算机应用能力的具体要求上,各省、自治区、直辖市人事厅(局)和国务院有关部门干部(人事)部门应结合本地区、本部门的实际情况,确定本地区、本部门在评聘专业技…

    2022年5月5日
    109
  • eclipse自动补全左边代码_eclipse自动补全返回类型

    eclipse自动补全左边代码_eclipse自动补全返回类型win平台下是:CTRL+1回车MAC下是:command+1回车

    2022年10月13日
    0
  • javaint转化为string_java jsonobject转string

    javaint转化为string_java jsonobject转string1、String转化为JsonObject格式的数据。主要代码如下:JsonReaderjsonReader=Json.createReader(newStringReader(str));JsonObjectz =jsonReader.readObject();  //或者 this.jobj=jsonReader.readObject();  例如:有一

    2022年8月23日
    3
  • 磁盘阵列恢复方法以及注意事项

    磁盘阵列恢复方法以及注意事项想要弄清楚磁盘阵列恢复,首先就得知道什么是磁盘阵列,磁盘阵列多用于存储服务器,数据服务器等企业级大数据存储领域,磁盘阵列是把多块独立的物理硬盘按不同方式组合起来形成一个逻辑硬盘,当磁盘瘫痪或硬件损坏后,为了恢复存储在阵列平台的数据被称之为磁盘阵列数据恢复,而磁盘阵列能够提供比单个硬盘有着更高的性能和提供数据冗余的技术。  对于做数据恢复人员来讲,最怕的是什么,那就是在客户发现数据丢失后,没有停

    2022年4月29日
    88

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号