vue 前端解决跨域问题 —代理 面试官也喜欢问哦!

本文介绍了JavaScript的同源策略和由此引发的跨域问题,通常通过后端解决,但在某些情况下需要前端处理。文中展示了在Vue项目中创建vue.config.js文件,并配置webpack的devServer代理,以解决API请求的跨域问题。配置包括目标API地址、是否支持WebSocket及主机头设置。
摘要由CSDN通过智能技术生成

前言
跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源,主要是安全问题。

在很多时候跨域问题我都是让后端解决,嘿嘿。但也有需要自己解决的项目!

  1. 首先在项目的根目录下建一个vue.config.js

  2. 如下:

    //改变webpack的设置
    
     const { default: Axios } = require("axios")
     
     module.exports = {
         publicPath :"./",
         devServer: {
             // 设置主机地址
             // host: 'xxx.1xx.1xx.xxx',
             // // 设置默认端口
             // port: 8051,
             // 设置代理
             proxy: {
                 '/api': {
                     // 目标 API 地址
                     target: 'http://xxx.xxx.xxx.xxx:8051',//服务器地址
                     // 如果要代理 websockets
                     ws: true,
                     // 将主机标头的原点更改为目标URL
                     changeOrigin: false
                 }
             }
        },
        chainWebpack: config => {//没有用到scss的这里就不需要啦!
           const oneOfsMap = config.module.rule('scss').oneOfs.store
            oneOfsMap.forEach(item => {
              item
                 .use('sass-resources-loader')
                 .loader('sass-resources-loader')
                 .options({
                     // 要公用的scss的路径
                     resources: './src/assets/base.scss'
                 })
                 .end()
               })
           }
       }
    

授道解惑?10行代码 1行注释,2行括号,3行废话,4行bug !
在这里插入图片描述

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 35
    评论
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值