2023/2/26 Vue学习笔记 配置代理解决跨域[CORS ]的问题

news2024/11/15 17:54:43

利用vue的脚手架巧妙的解决ajax跨域的问题

1 我们首先利用springboot服务搭建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意这里引出了跨域[CORS ]的问题:

Access to XMLHttpRequest at 'http://localhost:5000/getUserInfo' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

请求http的同源策略:1 2 3 点必须保持一致。

http://localhost:5000/getUserInfo
1、协议名 http
2、主机名 localhost
3、端口号 5000

违背了同源策略就会造成跨域问题。这里引出了配置代理的解决方案:

2 配置代理服务器 - 借助vue cli 开启代理服务器

Vue CLI官网—配置参考—devServer.proxy:配置参考 | Vue CLI
在这里插入图片描述
如何开启代理服务器?借助vue cli 开启代理服务器:

如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。
devServer.proxy 可以是一个指向开发环境 API 服务器的字符串:

module.exports = {
  devServer: {
    proxy: 'http://localhost:4000'
  }
}

这会告诉开发服务器将任何未知请求 (没有匹配到静态文件的请求) 代理到http://localhost:4000。
在这里插入图片描述
在这里插入图片描述
但是如果我们在public文件夹中存在数据的话:
在这里插入图片描述
在这里插入图片描述
有一个请求顺序的问题:先找自己public文件夹的资源,如果没有在去服务器中查询。public文件夹就相当于8080服务器的根路径。public文件夹里有的东西都算是8080中有的。

<template>
  <btn/>
</template>

<script>
import Btn from "@/components/Btn";

export default {
  name: 'App',
  components: {
    Btn
  }
}
</script>

<style>
</style>

<template>
  <div>
    <button @click="get">请求数据</button>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: `Btn`,
  methods: {
    get() {
      axios.get('http://localhost:8080/hello.txt')
          .then(response => {
                console.log(response.data)
              },
              error => {
                console.log(error.message)
              })
    }
  }
}
</script>

<style>
</style>

const {defineConfig} = require('@vue/cli-service')
module.exports = defineConfig({
    transpileDependencies: true,
    lintOnSave: false, // 关闭语法检查
    devServer: {
        proxy: 'http://localhost:5000'
    }
})

但是,以上方式不够灵活的控制走不走代理服务器,且不能够配置多个代理。基于此提出了如下解决方案:

在这里插入图片描述
在这里插入图片描述
如上问题,pathRewrite: {'^/inspur': ''},
在这里插入图片描述
在这里插入图片描述
改变来源请求的服务http:

changeOrigin: true
/**
 * changeOrigin设置为true时,服务器收到的请求头中的host为:localhost:5000
 * changeOrigin设置为false时,服务器收到的请求头中的host为:localhost:8080
 * changeOrigin默认值为true
 */

在这里插入图片描述
1.优点:可以配置多个代理,且可以灵活的控制请求是否走代理。
2.缺点:配置略微繁琐,请求资源时必须加前缀。

const {defineConfig} = require('@vue/cli-service')
module.exports = defineConfig({
    transpileDependencies: true,
    lintOnSave: false, // 关闭语法检查
    devServer: {
        proxy: {
            '/inspur': { // 请求前缀,若想走代理就在http加一个 /api
                target: 'http://localhost:5000',
                pathRewrite: {'^/inspur': ''},
                ws: true, // 用于支持websocket
                changeOrigin: true
                /**
                 * changeOrigin设置为true时,服务器收到的请求头中的host为:localhost:5000
                 * changeOrigin设置为false时,服务器收到的请求头中的host为:localhost:8080
                 * changeOrigin默认值为true
                 */
            }
        }
    }
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】Spring Boot 2 集成 nacos

【Java】Spring Boot 2 集成 nacos 官方文档&#xff1a;https://nacos.io/zh-cn/docs/quick-start-spring-boot.html pom 本次Springboot版本 2.2.6.RELEASE&#xff0c;nacos-config 版本 0.2.7&#xff0c;nacos-discovery版本 0.2.7 parent <parent><groupId&…

带你深层了解c语言指针

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨今天…

麻省理工学院,Web3 人才辈出

2 月 22 日&#xff0c;NFT 交易平台 Blur 创始人公开身份&#xff0c;曾就读于麻省理工学院计算机系。除了 NFT 交易平台&#xff0c;在公链、交易所、VC、媒体、Layer2 等 Web3 和 Crypto 的多个赛道&#xff0c;麻省理工学院&#xff08;MIT&#xff09;的毕业生和教授们均有…

HDMI协议介绍(二)--DataIsland Packets

前言 前文简单介绍了HDMI传输的三个周期&#xff1a;控制周期、DataIsland周期和Video周期。DataIsland传输音频和辅助数据&#xff0c;这些数据以Packet的形式传输。本文简单介绍DataIsland Packet。 目录 前言 数据岛概述 数据岛包的构造 Packet Header Paket Body Dat…

从0开始学python -40

Python3 面向对象-3 类属性与方法 类的私有属性 __private_attrs &#xff1a;两个下划线开头&#xff0c;声明该属性为私有&#xff0c;不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs 。 类的方法 在类的内部&#xff0c;使用 def 关键字…

Linux驱动——设备模型

目录 一、起源 二、新方案 2.1 sysfs: 2.2 uevent 三、代码中自动mknod 四、实例 一、起源 仅devfs&#xff0c;导致开发不方便以及一些功能难以支持&#xff1a;&#xff08;硬编&#xff09; 1. 热插拔&#xff08;插上usb设备就立马能安装驱动&#xff09; 2. 不支持…

蓝桥杯2015年第六届真题-奇怪的数列C++

题目&#xff1a;从X星截获一份电码&#xff0c;是一些数字&#xff0c;如下&#xff1a;13111331131321131113122113....YY博士经彻夜研究&#xff0c;发现了规律&#xff1a;第一行的数字随便是什么&#xff0c;以后每一行都是对上一行“读出来”比如第2行&#xff0c;是对第…

hadoop网站流量日志数据统计

系统背景介绍 数据提供企业决策能力 网站日志的数据分析------》受欢迎程度如何评价你这个网站的受欢迎程度 用数据 下载的人多了 观看的人多了 通过Hadoop 对某个网站产生的日志数据流量进行统计分析 得出该网站的访问流量 继而做出决策我们可以采用flume收集nginx的success文…

AcWing算法提高课-2.1.1池塘计数

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 题目传送门点这里 题目描述 农夫约翰有一片 N∗M 的矩形土地。 最近&#xff0c;由于降雨的原因&#xff0c;部分土地被水淹没了。 现在用一个字符矩阵来表示他的土地。 每个单元格内&…

EasyRecovery16最新免费版电脑数据恢复软件功能介绍

EasyRecovery是一款支持Windows/Mac平台进行恢复图片的专业工具&#xff0c;尤其是各种流行单反相机RAW格式文件&#xff0c;以及超大型视频文件等&#xff0c;推荐摄影爱好者使用。适用于主流相机、无人机、PC、存储卡、USB 闪存驱动器等&#xff0c;由于删除、损坏或意外格式…

【项目精选】医院管理住院系统的研究与实现(源码+论文+视频)

点击下载源码 本系统主要分为六大模块&#xff0c;分别是医生管理模块、病人管理模块、病床管理模块、收费管理模块、统计分析模块和系统功能模块 &#xff0c;医生、病人和医院的管理人员都可以通过此系统寻找出自己所需要的信息。 1.1 背景 医院管理住院系统是当今大部分现代…

Nginx安装及介绍

前言&#xff1a;传统结构上(如下图所示)我们只会部署一台服务器用来跑服务&#xff0c;在并发量小&#xff0c;用户访问少的情况下基本够用但随着用户访问的越来越多&#xff0c;并发量慢慢增多了&#xff0c;这时候一台服务器已经不能满足我们了&#xff0c;需要我们增加服务…

华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲天然蓄水库 or 天然蓄水池题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明示例三输入输出说明Python 代码实现算法思路华为OD机试300题大纲 参加华为

Android 分区和内存监控

Andorid之所以是分区&#xff0c;是因为各自有对应的功能和用途的考量&#xff0c;可以进行单独读写和格式化。Android 设备包含两类分区&#xff1a;一类是启动分区&#xff0c;对启动过程至关重要。一类是用户分区&#xff0c;用于存储与启动无关的信息。启动分区boot 分区一…

HTML综合案例练习

一、展示简历内容 可以首先看一下我们的效果&#xff0c;之后再思考怎么实现 总的来说&#xff0c;这个练习不算难。 这里关于这个简历的代码编写我们不说太多&#xff0c;只注意以下几个内容即可&#xff1a; 注意及时查看我们的代码是否符合预期&#xff0c;即一段一段测 …

@ModelAttribute注释,接收用户不能做出修改的值,定义好值不变化

举例&#xff1a;有时候我们做修改的时候&#xff0c;比如用户的生日&#xff0c;和姓名用身份证验证之后就默认了你的资料&#xff0c;后期在修改个人资料的时候是不允许修改的&#xff0c;只能修改兴趣等等......1.设置实体类User&#xff0c;定义好属性&#xff0c;以及get,…

进程优先级(Linux)

目录 优先级VS权限 基本概念 查看系统进程 几个重要信息 PRI and NI PRI vs NI top命令 上限&#xff1a; 详细步骤 下限&#xff1a; 其他概念 优先级VS权限 权限&#xff1a;能or不能 优先级&#xff1a;已经能&#xff0c;但是谁先谁后的问题&#xff08;CPU资源有…

(十七)操作系统-进程同步、互斥

文章目录一、知识总览二、进程同步三、进程互斥1. 临界资源2. 互斥3. 对临界资源的互斥访问&#xff0c;在逻辑上分为四个部分4. 为了实现对临界资源的互斥访问&#xff0c;同时保证系统整体性能&#xff0c;需要遵循的原则五、总结一、知识总览 二、进程同步 同步亦称直接制约…

Kubernetes学习笔记-pod与集群节点的自动伸缩20230225

前言pod手动横向扩展&#xff1a;通过ReplicationController、ReplicaSet、Deployment等可伸缩资源的replicas字段&#xff0c;来手动实现pod中应用的横向扩展。pod纵向扩展&#xff1a;通过增加pod容器的资源请求和限制&#xff08;pod创建时&#xff09;pod自动横向扩展&…

Allegro如何快速把视图居中显示操作指导

Allegro如何快速把视图居中显示操作指导 用Allegro进行PCB设计的时候,为了方便检查和设计,时常需要将视图居中显示。一般地,会使用鼠标的中键进行放大和缩小,或者使用Zoom in和Zoom out来调整视图 Allegro还支持快速将视图居中 具体操作如下 点击View