解决前后端通信跨域问题

因为浏览器具有同源策略的效应。

同源策略是一个重要的网络安全机制,用于Web浏览器中,以防止一个网页文档或脚本来自一个源(域、协议和端口),获取另一个源的数据。同源策略的目的是保护用户的隐私和安全,防止恶意网站获取用户的敏感信息或执行潜在的恶意操作。

以下是同源策略的主要规则:

源的定义:一个源由三部分组成:协议、域名和端口号。例如,http://example.com:80 和 https://example.com:443 就是两个不同的源,因为它们的协议不同。

限制资源访问:当一个网页文档或脚本来自某个源时,它只能与同源的资源进行交互,例如:

JavaScript 只能访问同源的 DOM 和 Cookie,而不能访问不同源的。
一个页面只能嵌入来自同一源的 。
Cookie限制:浏览器在发送同源的请求时,会自动附上相应的 Cookie。但是跨源请求则不会自动附上 Cookie,除非服务器响应中包含了 Access-Control-Allow-Credentials 头,并且设置为 true。

AJAX请求限制:XMLHttpRequest 和 Fetch API 也受到同源策略的限制。这意味着通过 JavaScript 发起的 AJAX 请求只能访问同源的资源。

跨域资源共享(CORS):如果需要从一个源访问另一个源的资源,可以使用 CORS 来解决跨域访问的问题。服务器端需要设置相应的 CORS 头来允许跨域访问。

总之,同源策略是一项重要的安全措施,确保Web浏览器在处理来自不同源的资源时,保持用户数据的安全性和隐私保护

前后向后端发送请求就需要进行跨端口来访问。

我们可以在后端进行设置也可以在前端进行设置。

后端修改

增加一个CorConfig类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;/*** 跨域配置*/
@Configuration
public class CorsConfig {@Beanpublic CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration = new CorsConfiguration();corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置return new CorsFilter(source);}
}

这样浏览器的请求就可以发送到后端了

前端实现跨域

在这里插入图片描述
在这里插入图片描述
在vue项目的vite.config.js文件中实现转发,浏览器默认发送给当前相同的端口,即发送给前端,前端可以跨端口进行转发,所以通过前端再转发给后端。

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

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

相关文章

maven pom relativePath属性的作用

maven pom relativePath属性的作用 文章目录 maven pom relativePath属性的作用一、relativePath出现的地方二、relativePath默认值三、四、<relativePath>一个pom路径 一、relativePath出现的地方 搭建maven项目&#xff0c;子模块指定父模块试&#xff0c;经常会在par…

专升本-信息技术介绍

信息技术是什么&#xff1f; 用于管理和处理信息所采用的各种技术的总称 以电子计算机和现代通信为主要手段 位于信息科学体系的技术应用层次 新一代信息技术有哪些&#xff1a; 代表性&#xff1a;人工智能&#xff0c;量子信息&#xff0c;移动通信&#xff0c;物联网&a…

Ubuntu中文输入法设置指南:轻松上手,畅享输入体验

在Linux的世界里,Ubuntu以其强大的功能和优美的界面设计赢得了众多用户的喜爱。然而,对于许多中文用户来说,如何在Ubuntu上设置中文输入法却是一个不小的挑战。今天,就让我来为大家详细介绍一下如何在Ubuntu上轻松设置中文输入法,让您的输入体验更加流畅自如。 首先,我们…

【使用python读取多类型文件夹中的文档内容】

突发奇想&#xff0c;想使用python读取多类型文件夹中的文档内容&#xff0c;在Python中&#xff0c;读取多类型文件夹中的文档内容通常涉及几个步骤&#xff1a; 遍历文件夹以获取文件列表。根据文件扩展名判断文件类型。使用适当的库或方法来读取每种文件类型的内容。 以下…

java数组与集合框架(三)--Map,Hashtable,HashMap,LinkedHashMap,TreeMap

Map集合&#xff1a; Map接口: 基于 键&#xff08;key&#xff09;/值&#xff08;value&#xff09;映射 Map接口概述 Map与Collection并列存在。用于保存具有映射关系的数据:key-value Map 中的key 和value 都可以是任何引用类型的数据Map 中的key 用Set来存放&#xff0…

stitcher类实现多图自动拼接

效果展示 第一组&#xff1a; 第二组&#xff1a; 第三组&#xff1a; 第四组&#xff1a; 运行代码 import os import sys import cv2 import numpy as npdef Stitch(imgs,savePath): stitcher cv2.Stitcher.create(cv2.Stitcher_PANORAMA)(result, pano) stitcher.st…

【每日跟读】常用英语500句(400~500)

【每日跟读】常用英语500句 Where can I buy a ticket? 在哪里能买到票&#xff1f; When is the next train? 下趟火车什么时候到&#xff1f; Thank you so much for helping me move yesterday. 非常感谢你昨天帮我搬家 I’m feeling a little under the weather toda…

创业项目开发(持续更新)

最近项目梳理&#xff1a; 一、业务目标 最重要的业务目标就是要能实现自己做事情赚钱。所以有两个维度&#xff0c;第一个维度就是最重要的就是自己做事情。第二个维度才是赚钱。 如果要自己做事情&#xff0c;需要什么样的事情&#xff0c;这个事情的目标是什么&#xff0…

Vue + .NetCore前后端分离,不一样的快速发开框架

摘要&#xff1a; 随着前端技术的快速发展&#xff0c;Vue.NetCore框架已成为前后端分离开发中的热门选择。本文将深入探讨Vue.NetCore前后端分离的快速开发框架&#xff0c;以及它如何助力开发人员提高效率、降低开发复杂度。文章将从基础功能、核心优势、适用范围、依赖环境等…

微信小程序开发中容易出现的错误思路、误区及示例解析

在微信小程序开发中,由于其特殊的开发环境和运行机制,开发者容易产生一些错误思路和陷入一些误区。以下是一些常见的错误思路和误区,并通过代码示例进行说明: 页面渲染和事件处理的顺序问题 错误思路:开发者认为页面渲染完成后才会执行事件处理函数。 示例代码: // pages/i…

[linux] AttributeError: module ‘transformer_engine‘ has no attribute ‘pytorch‘

[BUG] AttributeError: module transformer_engine has no attribute pytorch Issue #696 NVIDIA/Megatron-LM GitHub 其中这个答案并没有解决我的问题&#xff1a; import flash_attn_2_cuda as flash_attn_cuda Traceback (most recent call last): File "<stdi…

【蓝桥杯嵌入式】六、真题演练(一)-1演练篇:第 届真题

温馨提示&#xff1a; 真题演练分为模拟篇和研究篇。本专栏的主要作用是记录我的备赛过程&#xff0c;我打算先自己做一遍&#xff0c;把遇到的问题和不同之处记录到演练篇&#xff0c;然后再返回来仔细研究一下&#xff0c;找到最佳的解题方法记录到研究篇。 解题记录&#x…

绿联 安装轻量源代码管理器 - Gitea

更多信息点击 1、镜像 gitea/gitea:latest 2、安装 2.1、拉取镜像 2.2、创建容器 本示例中限制了内容最大大小为4GB&#xff0c;也可以不做限制。 2.3、基础设置 开启 交互、TTY、重启策略选择最后一项。 2.4、网络 选择桥接即可。 2.5、存储空间 装在路径必须是“/data”…

整合SpringSecurity+JWT实现登录认证

一、关于 SpringSecurity 在 Spring Boot 出现之前&#xff0c;SpringSecurity 的使用场景是被另外一个安全管理框架 Shiro 牢牢霸占的&#xff0c;因为相对于 SpringSecurity 来说&#xff0c;SSM 中整合 Shiro 更加轻量级。Spring Boot 出现后&#xff0c;使这一情况情况大有…

【编程笔记】学会使用 Git

目录 一、介绍 Git二、安装 Git三、 常用 linux 目录四、Git 的必要配置(1) 查看和删除之前的配置(2) 配置 Git 五、Git 基本理论六、Git 项目搭建七、Git 文件操作八、分支Git 笔记 ❀❀❀(1) 常规使用(2) 分支 一、介绍 Git &#x1f4d6; VCS&#xff1a;Version Control S…

当代深度学习模型介绍--卷积神经网络(CNNs)

AI大模型学习 方向一&#xff1a;AI大模型学习的理论基础 模型和应用的多样化&#xff1a;随着研究的深入&#xff0c;深度学习领域出现了多种创新的模型架构&#xff1a; 卷积神经网络&#xff08;CNNs&#xff09;专门针对图像处理任务进行了优化&#xff0c;通过模拟生物视…

关于WPARAM和LPARAM参数

从前&#xff0c;Windows 是 16 位的。每条message信息都可以携带两段数据&#xff0c;分别称为 WPARAM 和 LPARAM。在消息参数传递中对指针类型使用强制类型转换&#xff0c;这是一种常见用法。第一个参数是一个 16 位值&#xff08;"word"&#xff09;&#xff0c;…

如何过得更幸福?我推荐你读这5本书

快乐不等于幸福。快乐是一种短暂的体验&#xff0c;随着多巴胺的消退而迅速减退。快乐是有捷径的&#xff0c;那就是戏弄相关的神经回路。 幸福是有意义、有目的和积极的生活的持久体验。 今天&#xff0c;为大家推荐一份“幸福书单”。 01 《幸福的勇气》 岸见一郎、古贺史…

【jenkins+cmake+svn管理c++项目】jenkins回传文件到svn(windows)

书接上文&#xff1a;创建一个项目 在经过cmakemsbuild顺利生成动态库之后&#xff0c;考虑到我一个项目可能会生成多个动态库&#xff0c;它们分散在build内的不同文件夹&#xff0c;我希望能将它们收拢到一个文件夹下&#xff0c;并将其回传到svn。 一、动态库移位—cmake实…

45 对接海康视频九宫格的实现

前言 这里主要是 来看一下 海康视频 的一个九宫格播放的需求 然后 在实际使用的过程中产生了一些问题, 比如 增加一个视频, 应该只增量请求这一个视频的服务, 而一些实现下是全量请求了 整个视频列表的服务 另外 就是全屏播放, 如果是 自己写样式来实现 全屏播放, 可能需要 …