跨域问题详解(vue工程中的解决办法)

目录

1. 什么是跨域

2. 如何解决跨域问题

1. 配置request.js

2. 配置vite.config.js


1. 什么是跨域

       跨域问题指的是当一个网页的源(origin)与另一个网页的源不同时,浏览器出于安全考虑,会限制页面中的跨域请求。源是由协议、主机名和端口号组成的。如果两个页面的源不同,就称为跨域。

       跨域问题的产生是基于浏览器的同源策略(Same-Origin Policy),这是一种安全机制,用于限制一个源的文档或脚本如何能与另一个源的资源进行交互。同源策略要求一个源的脚本只能读取来自同一个源的数据,而不能访问其他源的数据。

       跨域问题会影响到诸如 XMLHttpRequest 或 Fetch 等网络请求,以及通过 <img>、<script>、<link> 等标签加载的资源。例如,如果一个网页在 http://example.com 上加载,它想要通过 XMLHttpRequest 请求 http://api.example.net/data 的数据,由于源不同,就会遇到跨域问题。

       为了允许跨域请求,目标服务器必须在响应中包含特定的跨域资源共享(CORS)头信息,如 Access-Control-Allow-Origin,来指示浏览器该如何处理跨域请求。

       跨域问题常见于前端开发中,特别是当使用 AJAX 或 Fetch API 进行跨域请求时。要解决跨域问题,可以采取一些方法,如设置服务器端的 CORS 配置、使用代理服务器、JSONP(仅适用于 GET 请求)等。

简单来说:由于浏览器的同源策略限制,向不同源(不同协议、不同域名、不同端口)发送ajax请求会失败

2. 如何解决跨域问题

1. 配置request.js

将原本的baseURL赋值为'/api',如下所示

import axios from 'axios';
//定义一个变量,记录公共的前缀 , baseURL
//const baseURL = 'http://localhost:8080';修改如下
const baseURL = '/api';
//相当于http://localhost:5173/api
const instance = axios.create({ baseURL })//添加响应拦截器
instance.interceptors.response.use(result => {return result.data;},err => {alert('服务异常');return Promise.reject(err);//异步的状态转化成失败的状态}
)export default instance;

2. 配置vite.config.js

// https://vitejs.dev/config/
export default defineConfig({//其他配置...,//做服务相关的配置server: {//配置代理proxy: {//如果请求路径有'/api'就需要进行处理'/api': {//要更换成哪个源target: 'http://localhost:8080',//后台服务所在的源//要不要更换源changeOrigin: true,//路径重写,把路径里面的/api替换成空字符串rewrite: (path) => path.replace(/^\/api/, '')}}}
})

如果原来的URL为

http://localhost:5173/api/user/register

那么配置后为

http://localhost:8080/user/register

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

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

相关文章

五种主流数据库:高级分组

除了基本的分组功能之外&#xff0c;GROUP BY 子句还提供了几个高级选项&#xff0c;可以用来实现更复杂的报表功能。 本文比较五种主流数据库实现的高级分组功能&#xff0c;包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。 功能MySQLOracleSQL ServerPostgreSQL…

Day26 手撕各种集合底层源码(一)

Day26 手撕各种集合底层源码&#xff08;一&#xff09; 一、手撕ArrayList底层源码 1、概念&#xff1a; ArrayList的底层实现是基于数组的动态扩容结构。 2、思路&#xff1a; 1.研究继承关系 2.研究属性 3.理解创建集合的过程 – 构造方法的底层原理 4.研究添加元素的过程…

vue实现把Ox格式颜色值转换成rgb渐变颜色值(开箱即用)

图示&#xff1a; 核心代码&#xff1a; //将0x格式的颜色转换为Hex格式&#xff0c;并计算插值返回rgb颜色 Vue.prototype.$convertToHex function (colorCode1, colorCode2, amount) {// 确保输入是字符串&#xff0c;并检查是否以0x开头let newCode1 let newCode2 if (t…

关系型数据库mysql(5)存储引擎

目录 一.存储引擎的概念 二. MyISAM 和 InnoDB 2.1MyISAM介绍 2.2MyISAM支持的存储格式 2.2.1静态表&#xff08;固定长度表&#xff09; 2.2.2动态表 2.2.3压缩表 2.3场景举例 2.4.InnoDB 2.4.1场景举例 2.4.2企业选择存储引擎依据 三.查看存储引擎 3.1查看当前数…

IMU预积分【SLAM】

前言 预积分的推导过程比较多&#xff0c;所以这里只记录关键结论。 其实这些公式不太好记忆&#xff0c;因为预积分推导过程的想法来源很巧妙&#xff0c;无法看出物理意义。 预积分定义式&#xff08;必须记住&#xff09; 一切推导的来源&#xff1a; 最好记忆的旋转相对…

c语言教务成绩管理系统1000+

定制魏:QTWZPW,获取更多源码等 目录 题目 代码主函数 教务信息头文件 题目 编写一个C语言程序,实现一个教务成绩管理系统,至少能够管理30条学生信息。其中: 1)学生信息包括:基本信息和成绩信息。 2)基本信息包括:班级,学号,姓名,性别,专业,普通课程选修数…

C++中的STL简介与string类

目录 STL简介 STL的版本 STL的六大组件 string类 标准库中的string类 string类的常用接口 string类对象对容量的操作 size()函数与length()函数 capacity()函数 capacity的扩容方式 reserve()函数 resize()函数 string类对象的操作 push_back()函数 append()函数 operator()函数…

【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【01-20】计算机网络基础知识&#xff08;非常详细&#xff09;从零基础入门到精通&#xff0c;看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用1、OSI 的七层模型分别是&#xff1f;各自的功能是什么&#xff1f;2、说一下一次完整的HTTP请求…

1688中国站按关键字搜索工厂数据 API

公共参数 名称类型必须描述keyString是申请免费调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…

记录何凯明在MIT的第一堂课:神经网络发展史

https://www.youtube.com/watch?vZ5qJ9IxSuKo 目录 表征学习 主要特点&#xff1a; 方法和技术&#xff1a; LeNet 全连接层​ 主要特点&#xff1a; 主要特点&#xff1a; 网络结构&#xff1a; AlexNet 主要特点&#xff1a; 网络结构&#xff1a; Sigmoid Re…

经典永不过时 Wordpress模板主题

经得住时间考验的模板&#xff0c;才是经典模板&#xff0c;带得来客户的网站&#xff0c;才叫NB网站。 https://www.jianzhanpress.com/?p2484

最详细爬虫零基础教程12——某网评论爬取教程

文章目录 前言一、单页爬取二、翻页案例 前言 本文我们主要是讲述一个某网站评论爬取的案例 一、单页爬取 目标url&#xff1a;https://ke.qq.com/course/380991/12573838881968191?tuin7265bf35#term_id100454125 import jsonpath import requestsif __name__ __main__:#…

HCIP杂记

动态路由的评判标准 占用资源收敛速度选路 动态路由分类&#xff1a; IGP---内部网关协议 DV型---距离矢量型---RIPLS型---链路状态型---OSPFEGP---外部网关协议 OSPF---无类别的路由协议 组播224.0.0.5和224.0.0.6不存在周期更新机制&#xff0c;仅存在触发更新机制&#xff1…

Elasticsearch如何处理多个关键字查询

Elasticsearch (ES) 是一款强大的全文搜索和分析引擎。当针对Elasticsearch进行含有多个关键字的查询时&#xff0c;ES通常会使用其内置的查询DSL&#xff08;Domain Specific Language&#xff09;来处理这些请求。一般来讲&#xff0c;基于多个关键字&#xff0c;可以构建不同…

第十五届蓝桥杯第三期模拟赛第十题 ← 上楼梯

【问题描述】 小蓝要上一个楼梯&#xff0c;楼梯共有 n 级台阶&#xff08;即小蓝总共要走 n 级&#xff09;。小蓝每一步可以走 a 级、b 级或 c 级台阶。 请问小蓝总共有多少种方案能正好走到楼梯顶端&#xff1f;【输入格式】 输入的第一行包含一个整数 n 。 第二行包含三个整…

vulfocus环境搭建(kali搭建)

Vulfocus 是一个漏洞集成平台&#xff0c;将漏洞环境 docker 镜像&#xff0c;放入即可使用&#xff0c;开箱即用。 安装docker环境 个人不建议随意更换apt源&#xff0c;我换了几次遇到很多问题。 apt-get update apt-get upgrade&#xff08;时间很久&#xff09; apt-get i…

基于springboot的人事管理系统

人事管理系统 摘 要 人事管理系统理工作是一种繁琐的&#xff0c;务求准确迅速的信息检索工作。随着计算机信息技术的飞速发展&#xff0c;人类进入信息时代&#xff0c;社会的竞争越来越激烈&#xff0c;人事就越显示出其不可或缺性&#xff0c;成为学校一个非常重要的模块。…

小米汽车发布了

文章目录 1. 内容回顾2. 发布概要3. 畅想未来 1. 内容回顾 从小米宣布造车开始我就关注了&#xff0c;当时写过相关的文章来分析&#xff0c;这还是三年以前的事情&#xff0c;当时我是不看好小米造车的。 时光飞逝&#xff0c;在三月前&#xff0c;小米发布了它制造的第一台…

防止恶意软件和网络攻击的简单贴士

如今&#xff0c;缺少互联网的生活是难以想象的。然而&#xff0c;互联网的匿名性导致了网络攻击和恶意软件很猖獗。恶意软件会损坏我们的设备、窃取个人数据&#xff0c;并导致金钱损失。因此&#xff0c;保护计算机免受这些威胁显得至关重要。 一、确保操作系统和软件是最新版…