返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue使用vite配置跨域以及环境配置详解
  • 450
分享到

vue使用vite配置跨域以及环境配置详解

2024-04-02 19:04:59 450人浏览 泡泡鱼
摘要

目录如何配置跨域,代理域名区分开发环境和生产环境,以及预发布环境可以做什么事补充:解决跨域常用方法一、Vue中常用proxy来解决跨域问题二、JSONP解决跨域 三、COR

如何配置跨域,代理域名

不管使用什么脚手架,配置代理都是绕不开的话题,下面是vite的代理

server: {
    proxy: {
      '/api': {
        target: 'https://baidu.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
 },

区分开发环境和生产环境,以及预发布环境

在根目录创建 .env[mode] 文件,在项目执行 npm run dev 的时候vite会自动去读取.env.development文件里面的配置,执行npm runbuild进行打包之后也会自动将.env.production的内容打包进去,这里注意的是,如果你想进入预发布模式的话需要在打包的时候进行mode配置:npm run build --mode staging
公共的 .env
开发环境 .env.development
生产环境 .env.production
预发布环境 .env.staging
环境

在.env.development配置了一个域名:

`.env.development`
// 开发环境配置
VITE_BASIC_URL = Https://basic.com

可以做什么事

针对不同的环境可以去配置,例如页面的统一标题,参数常量…
下面根据环境配置不同的请求域名?

import { defineConfig, loadEnv } from 'vite'
export default defineConfig(({ mode }) => {
  // 获取当前环境的配置
  const config = loadEnv(mode, './')
  return {
    server: {
      proxy: {
        '/basice': {
          target: config.VITE_BASIC_URL,
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/basice/, '')
        }
      }
    },
  }
})

以上是vite.config.js的配置,上面展示了在不同环境下去请求对应环境的域名并且配置代理进行跨域

补充:解决跨域常用方法

一、VUE中常用proxy来解决跨域问题

1、在vue.config.js中设置如下代码片段

module.exports = {
  dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: { // 配置跨域
    '/api':{
        target:`http://www.baidu.com`, //请求后台接口
        changeOrigin:true, // 允许跨域
        pathRewrite:{
            '^/api' : '' // 重写请求
        }
    }
  },
}

2、创捷axiOSs实例时,将baseUrl设置为 ‘/api’

const http = axios.create({
  timeout: 1000 * 1000000,
  withCredentials: true,
  BASE_URL: '/api'
  headers: {
     'Content-Type': 'application/json; charset=utf-8'
   }
})

二、JSONP解决跨域

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

<!DOCTYPE html>
       <html>
       <head>
           <meta charset="utf-8">
       </head>
       <body>
       <div id="textID"></div>
       <script type="text/javascript">
           function text_jsonp(req){
               // 创建script的标签
               var script = document.createElement('script');
               // 拼接 url
               var url = req.url + '?callback=' + req.callback.name;
               // 赋值url
               script.src = url;
               // 放入头部
               document.getElementsByTagName('head')[0].appendChild(script);
           }
       </script>
       </body>
       </html>

 三、CORS是跨域资源共享(Cross-Origin Resource Sharing),以 ajax 跨域请求资源,支持现代浏览器,IE支持10以上

在CORS请求,头部信息中包含以下三个字段:

Access-Control-Allow-Origin: 该字段是必须的。它的值要么是请求时Origin字段的值,要么是一个*,表示接受任意域名的请求,

Access-Control-Allow-Credentials: 可选,值为布尔值,表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中。设为true,即表示服务器明确许可,Cookie可以包含在请求中,一起发给服务器。这个值也只能设为true。如果要发送Cookie,Access-Control-Allow-Origin必须设置为必须指定明确的、与请求网页一致的域名

Access-Control-Expose-Headers:可选。CORS请求时,XMLHttpRequest对象的getResponseHeader()方法只能拿到6个基本字段:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。如果想拿到其他字段,就必须在Access-Control-Expose-Headers里面指定

四、iframe实现跨域

iframe(src){
            //数组
            if(Array.isArray(src)){
                this.docs.visible = true;
            }else{
                this.docs.visible = false;
                
            }
            this.link  = src
            if(this.docs.visible == false){
                if(this.$refs['ruleIframe'] && this.$refs['ruleIframe'].querySelector('iframe')){
                    this.$refs['ruleIframe'].querySelector('iframe').remove()    //删除自身
                }
                var iframe = document.createElement('iframe');
                iframe.width = '100%';
                iframe.height = '100%';
                iframe.setAttribute('frameborder','0')
                iframe.src = src;                
                this.append(iframe)
            }
            
        },
        //创建元素 防止  获取不到 ruleIframe 递归
        append(iframe){
            if(this.$refs['ruleIframe']){
                this.$refs['ruleIframe'].appendChild(iframe);
                return
            }
            setTimeout(()=>{
                this.append(iframe);
            },500)    
        },

总结

到此这篇关于vue使用vite配置跨域以及环境配置的文章就介绍到这了,更多相关vite配置跨域及环境配置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue使用vite配置跨域以及环境配置详解

本文链接: https://lsjlt.com/news/154296.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue使用vite配置跨域以及环境配置详解
    目录如何配置跨域,代理域名区分开发环境和生产环境,以及预发布环境可以做什么事补充:解决跨域常用方法一、VUE中常用proxy来解决跨域问题二、JSONP解决跨域 三、COR...
    99+
    2024-04-02
  • vue使用vite配置跨域及环境配置的方法
    这篇文章主要介绍“vue使用vite配置跨域及环境配置的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue使用vite配置跨域及环境配置的方法”文章能帮助大家解决问题。如何配置跨域,代理域名不...
    99+
    2023-07-02
  • vue中vite.config.js配置跨域以及环境配置方式
    目录如何配置跨域,代理域名,下面是vite的代理区分开发环境和生产环境,以及预发布环境VUE中常用proxy来解决跨域问题总结如何配置跨域,代理域名,下面是vite的代理 serve...
    99+
    2023-05-16
    vue中vite.config.js vite.config.js配置跨域 vue环境配置
  • vue3 vite配置跨域以及不生效问题
    在vite.config中添加配置 server: { host: "0.0.0.0", cors: true, port: 8991, open: false, //自动打开 proxy: { /...
    99+
    2023-08-31
    前端 服务器 运维
  • vue跨域proxy代理配置详解
    目录引言例一例二总结引言 相信很多人都用过proxy,这里就不多说proxy的基本使用,这里要说一下很多人使用proxy的一个误区,大家一般都是直接将管官方的例子拿过来,修改一下代理...
    99+
    2024-04-02
  • Hadoop环境配置之hive环境配置详解
    1、将下载的hive压缩包拉到/opt/software/文件夹下 安装包版本:apache-hive-3.1.2-bin.tar.gz 2、将安装包解压到/opt/module/...
    99+
    2024-04-02
  • vite与xcode环境变量配置记录详解
    目录一、vite 环境变量配置1、效果2、操作:二、xcode的环境变量如何配置1、效果2、操作一、vite 环境变量配置 废话开篇:为了方便调试及开发自然离不开不同的环境配置,这里...
    99+
    2024-04-02
  • vue多环境配置之.env配置文件详解
    目录Vue之.env环境配置文件前言一、.env是什么?二、说明及用法1. 文件说明2. 文件读取2.1 npm run serve2.2 npm run build3. 查看环境变...
    99+
    2023-03-19
    vue多环境配置 vue .env配置文件
  • Windows10环境adb配置及使用
    下载 adb工具官网下载地址:Download Android SDK - free - latest version 安装 下载得到一个压缩包,解压在任一文件夹下,这里解压在D盘的一个文件夹 注意这里的文件地址要牢记 配置环境变量 右键...
    99+
    2023-09-13
    adb android
  • Nginx如何解决前端跨域问题以及CORS跨域配置
    Nginx如何解决前端跨域问题以及CORS跨域配置,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Nginx的CORS配置,网上太多这配置了,但大家更多的复制粘贴...
    99+
    2023-06-04
  • vue 项目使用 vite工具,开发服务器配置 server.proxy 简要介绍(包含跨域配置)
    概述         不管使用什么脚手架,配置代理都是绕不开的话题 ,server.proxy 为开发服务器配置自定义代理规则。期望接收一个 { key: options } 对象。如果 key 值以 ^ 开头,将会被解释为 RegExp。...
    99+
    2023-08-31
    vue.js 服务器 前端
  • Vite怎么配置代理Proxy解决跨域问题
    本篇内容主要讲解“Vite怎么配置代理Proxy解决跨域问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vite怎么配置代理Proxy解决跨域问题”吧!前言我们在编写前端项目的时候,经常会遇到...
    99+
    2023-07-05
  • jdk11下载、安装及环境配置详解(win10环境)
    目录 一、jdk11下载1.1、官网下载网址1.2、官网下载步骤 二、jdk11安装(win10环境)三、jdk11环境变量配置(win10环境)3.1、jdk11环境变量配置步骤3.2...
    99+
    2023-09-02
    jdk
  • SpringBoot多环境配置及配置文件分类实例详解
    目录二、配置文件分类2.1 代码演示2.1.1 环境准备2.1.2 验证1级和2级的优先级2.1.3 验证2级和4级的优先级一、多环境配置 在工作中,对于开发环境、测试环境、生产环境...
    99+
    2022-11-13
    SpringBoot多环境配置 SpringBoot配置文件
  • Vite多环境配置项目高定制化能力详解
    目录业务背景多环境场景的业务形态Vite多环境方案实现多模式文件配置自定义环境变量Vite默认环境变量通过插件透传环境变量客户端环境差异定制效果图解决的业务场景思考业务背景 近些年来...
    99+
    2024-04-02
  • Vue安装与环境配置步骤详解
    目录1、安装node.js2、查看npm3、安装npm的国内镜像—cnpm4、安装webpack(一款开源的前端打包工具)5、查看webpack是否安装成功6、安装vue...
    99+
    2024-04-02
  • vscode以及Anaconda安装以及相关环境配置
    前言 相信很多的小伙伴和我一样初步涉入深度学习领域,那么对于小萌新来说,该选择什么样的方案去运行我们学习或者是下载好的项目呢?最常见的选择方案无非就是两种,一种是python搭配vscode/pycharm,这种方式不值得推荐,理由待会再说...
    99+
    2023-09-10
    python vscode
  • vue多环境配置之.env配置文件怎么使用
    这篇文章主要介绍“vue多环境配置之.env配置文件怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue多环境配置之.env配置文件怎么使用”文章能帮助大家解决问题。Vue之.env环境配置...
    99+
    2023-07-05
  • Docker环境配置以及问题解决方案
    目录环境准备Linux系统分为两种:查看系统版本:查看系统内核查看系统配置步骤卸载docker问题汇总docker 启动报错常用命令环境准备 我的服务器是 centos 7 环境 如...
    99+
    2022-11-16
    docker环境配置 服务器配置docker 服务器安装docker
  • vscode配置php运行环境以及xdebug
    配置运行环境 在settings.json中添加php对应版本的路径 在目标路径下新建一个.vscode文件夹,并创建一个新的settings.json,并输入以下配置信息,目的是运行php文件自动清空终端 新建一个php文件代码测试一...
    99+
    2023-09-05
    vscode 编辑器 php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作