当前位置: 首页 > news >正文

springboot 实现跨域的几种方式

1、跨域的原因:
由于同源策略(Same Origin Policy)的限制,浏览器不允许跨域请求。同源策略规定,A网页设置的Cookie、LocalStorage和IndexDB无法被同源以外的网页读取。
2、原因:
1)浏览器的同源策略(Same Origin Policy)限制了跨域请求。主要出于安全考虑,浏览器限制脚本只能读取与之同源的资源。同源指的是协议、域名、端口都相同。跨域请求会因为违反同源策略而被阻止
2)Cookie和本地存储也遵循同源策略。A域名下的页面无法读取B域名下的Cookie、localStorage等
3)跨域JavaScript请求会报错。比如A页面请求B页面的JS文件,就会报错
3、常见跨域请求
1)JSONP:通过script标签加载JS文件来实现跨域通信
2)CORS:服务器端设置HTTP头,允许指定的请求来源跨域访问
3)postMessage:A域的window向B域的window发送消息,实现跨域通信
4、实现跨域的几种方式
1)@crossOrigin 注解

    @CrossOrigin(origins = "http://domain1.com")@RestControllerpublic class TestController {@GetMapping("/test")public String test() {return "hello";}}

2)过滤器CorsFilter
@Configuration

	public class CorsConfig {@Beanpublic CorsFilter corsFilter() {CorsConfiguration config = new CorsConfiguration();config.setAllowCredentials(true);config.addAllowedOrigin("http://domain1.com");config.addAllowedHeader("*");config.addAllowedMethod("*");UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", config);return new CorsFilter(source);}}

3).配置类WebMvcConfigurer
描述:可以在WebMvcConfigurer接口的addCorsMappings()方法中添加跨域配置

	    @Configurationpublic class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("http://domain1.com").allowedMethods("GET", "POST", "PUT", "OPTIONS", "DELETE", "PATCH").allowedHeaders("*").allowCredentials(true);}}

相关文章:

springboot 实现跨域的几种方式

1、跨域的原因: 由于同源策略(Same Origin Policy)的限制,浏览器不允许跨域请求。同源策略规定,A网页设置的Cookie、LocalStorage和IndexDB无法被同源以外的网页读取。 2、原因: 1)浏览器的同源策略(Same Origin Policy)限制了跨域请求。主要…...

springmvc Web上下文初始化

Web上下文初始化 web上下文与SerlvetContext的生命周期应该是相同的&#xff0c;springmvc中的web上下文初始化是由ContextLoaderListener来启动的 web上下文初始化流程 在web.xml中配置ContextLoaderListener <listener> <listener-class>org.springframework.…...

Verilog实战学习到RiscV - 2 : wire 和 reg 的区别

Verilog: wire 和 reg 的区别 1 引言 看Verilog例子过程中&#xff0c;总是分不清 wire 和 reg 的区别。这篇文章把两者放在一起总结一下&#xff0c;并且对比何时使用它们。 1.1 wire &#xff1a;组合逻辑 wire 是 Verilog 设计中的简单导线&#xff08;或任意宽度的总线…...

OpenGL给定直线起点和终点不同的颜色,使用中点Bresenham画线

用鼠标左键按下确定直线起点&#xff0c;鼠标左键抬起确定直线终点。放一部分代码。 // 中点Bresenham算法.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <GL/glut.h> #include <iostream> #include <cmath>int windowWidt…...

IT行业的现状与未来发展趋势:从云计算到量子计算的技术变革

随着技术的不断进步&#xff0c;IT行业已经成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链&#xff0c;这些技术正在重塑我们的生活和工作方式。本文将深入探讨当前IT行业的现状&#xff0c;并展望未来发展趋势&#xff0c;旨在为…...

电脑远程控制另一台电脑怎么弄?

可以远程控制另一台电脑吗&#xff1f; “你好&#xff0c;我对远程访问技术不太了解。现在&#xff0c;我希望我的朋友可以远程控制我的Windows 10电脑&#xff0c;以便她能帮我解决一些问题。请问&#xff0c;有没有免费的方法可以实现这种远程控制&#xff1f;我该如何操作…...

软件设计师备考 | 案例专题之面向对象设计 概念与例题

相关概念 关系 依赖&#xff1a;一个事物的语义依赖于另一个事物的语义的变化而变化 关联&#xff1a;一种结构关系&#xff0c;描述了一组链&#xff0c;链是对象之间的连接。分为组合和聚合&#xff0c;都是部分和整体的关系&#xff0c;其中组合事物之间关系更强。两个类之…...

UniApp 2.0可视化开发工具:引领前端开发新纪元

一、引言 在移动互联网迅猛发展的今天&#xff0c;移动应用开发已经成为前端开发的重要方向之一。为了简化移动应用开发流程&#xff0c;提高开发效率&#xff0c;各大开发平台不断推出新的工具和框架。UniApp作为一款跨平台的移动应用开发框架&#xff0c;自诞生以来就备受开…...

前端调用浏览器录音功能且生成文件(vue)

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; 首先在页面中给两个按钮&#xff0c;分别是“开始录音”&#xff0c;“结束录音”。以及录音成功后生成一个下载语音的链接。 1. 先看页面展示 <template><div><button click"startRecording…...

「大数据」Kappa架构

Kappa架构是一种处理大数据的架构&#xff0c;它作为Lambda架构的替代方案出现。Kappa架构的核心思想是简化数据处理流程&#xff0c;通过使用单一的流处理层来同时处理实时和批量数据&#xff0c;从而避免了Lambda架构中需要维护两套系统&#xff08;批处理层和速度层&#xf…...

详细分析Element Plus中的ElMessageBox弹窗用法(附Demo及模版)

目录 前言1. 基本知识2. Demo3. 实战4. 模版 前言 由于需要在登录时&#xff0c;附上一些用户说明书的弹窗 对于ElMessageBox的基本知识详细了解 可通过官网了解基本的语法知识ElMessageBox官网基本知识 1. 基本知识 Element Plus 是一个基于 Vue 3 的组件库&#xff0c;其中…...

Python自动化工具(桌面自动化、Web自动化、游戏辅助)

工具介绍 连点工具是一款可以模拟键鼠后台操作的连点器工具。支持鼠标连点、键鼠脚本录制&#xff0c;支持辅助您实现办公自动化以及辅助游戏操作。功能简洁易用&#xff0c;非常方便操作。连点工具让您在在玩游戏、网购抢购的时候全自动点击鼠标&#xff01;主要功能有&#…...

opencv进阶 ——(五)图像处理之马赛克

一、遍历图像并对每个马赛克区域进行像素化处理 for (int y 0; y < image.rows; y blockSize) {for (int x 0; x < image.cols; x blockSize) {cv::Rect rect cv::Rect(x, y, std::min(blockSize, image.cols - x), std::min(blockSize, image.rows - y));cv::Scal…...

电机控制系列模块解析(22)—— 零矢量刹车

一、零矢量刹车 基本概念 逆变器通常采用三相桥式结构&#xff0c;包含六个功率开关元件&#xff08;如IGBT或MOSFET&#xff09;&#xff0c;分为上桥臂和下桥臂。每个桥臂由两个反并联的开关元件组成&#xff0c;上桥臂和下桥臂对应于电机三相绕组的正负端。正常工作时&…...

自定义一个SpringBoot场景启动器

前言 一个刚刚看完SpringBoot自动装配原理的萌新依据自己的理解写下的文章&#xff0c;如有大神发现错误&#xff0c;敬请斧正&#xff0c;不胜感激。 分析SpringBoot自动配置原理 SpringBoot的启动从被SpringBootApplication修饰的启动类开始,SpringBootApplicaiotn注解中最…...

UDP的报文结构和注意事项

UDP协议是在传输层的协议。 UDP无连接&#xff0c;不可靠传输&#xff0c;面向数据报&#xff0c;全双工。 UDP的报文结构 学习网络协议&#xff0c;最主要的就是报文格式。 对于UDP来说&#xff0c;应用层的数据到达&#xff0c;UDP之后&#xff0c;就会给应用层的数据报前面…...

rust语言一些规则学习

目录 rust中迭代器的使用&#xff08;iter().map()与for循环的区别&#xff09;map()与for的描述区别总结 最后更新时间2024-05-24 rust中迭代器的使用&#xff08;iter().map()与for循环的区别&#xff09; map()与for的描述 rust源码中关于iter().map()函数的解释&#xff…...

QML基本语法介绍

为什么使用QML 开发者效率 将前后端分离,QML和JavaScript语言主要用于前度UI的方法,后端有C++来完成绘制。将JavaScript和C++分开能够快速迭代开发; 跨平台移植性 基于Qt平台的统一抽象概念,现在可以更加容易和快速和将Qt移植到更多的平台上。 开发的开放 Qt是由Qt-Proje…...

学习和分享关于 Vue.js 的路由(vue-router)

学习和分享关于 Vue.js 的路由&#xff08;vue-router&#xff09;是一个非常有价值的主题&#xff0c;因为路由是构建单页应用程序&#xff08;SPA&#xff09;的核心部分。本文将介绍 Vue.js 路由的基本概念和实现&#xff0c;并展示一个典型的项目目录结构。 目录 Vue.js 路…...

小猪APP分发:一站式免费应用推广解决方案

在竞争激烈的移动应用市场中&#xff0c;寻找一个高效且成本友好的方式来推广自己的应用程序&#xff0c;成为了众多开发者面临的共同挑战。幸运的是&#xff0c;像"小猪APP分发www.appzhu.cn"这样的平台应运而生&#xff0c;为开发者提供了一个全面、免费的应用分发…...

Piggy_Packages V2026.1 帮助文档(九)模式评估

获取Piggy_Packages 还没有Piggy_Packages的同学&#xff0c;请参考这篇帖子获取&#xff1a; Piggy_Packages V2026.1 帮助文档&#xff08;一&#xff09;开箱即用 模型评估工具&#xff08;MET&#xff09;是一种常用的对WRF预报结果进行评估的工具。今天我们来学习一项它…...

新手必看:UDOP-large文档理解模型从部署到实战全流程

新手必看&#xff1a;UDOP-large文档理解模型从部署到实战全流程 1. 引言&#xff1a;文档理解的新选择 在数字化办公时代&#xff0c;我们每天都要处理大量文档——论文、合同、发票、报告...传统的人工处理方式不仅效率低下&#xff0c;还容易出错。想象一下&#xff0c;如…...

ROFL播放器:英雄联盟回放文件的终极管理工具

ROFL播放器&#xff1a;英雄联盟回放文件的终极管理工具 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为英雄联盟回放文件无法播放…...

新手必看:Qwen3-Reranker-0.6B部署避坑指南与常见问题

新手必看&#xff1a;Qwen3-Reranker-0.6B部署避坑指南与常见问题 1. 为什么选择Qwen3-Reranker-0.6B 1.1 轻量高效的语义重排序模型 Qwen3-Reranker-0.6B是阿里云推出的轻量级重排序模型&#xff0c;仅有0.6B参数&#xff08;约6亿&#xff09;&#xff0c;但性能表现优异。…...

终极指南:如何用Python-for-Android将Python应用快速打包为Android APK

终极指南&#xff1a;如何用Python-for-Android将Python应用快速打包为Android APK 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android Python-for-Android&#…...

PyTorch 2.8应用场景:高校AI课程实验平台——学生免配环境专注算法实现

PyTorch 2.8应用场景&#xff1a;高校AI课程实验平台——学生免配环境专注算法实现 1. 高校AI教学面临的挑战 在高校人工智能课程教学中&#xff0c;环境配置一直是困扰师生的难题。传统教学模式下&#xff0c;学生需要花费大量时间在&#xff1a; 安装不同版本的CUDA驱动解…...

SAP财务数据一致性检查:手把手教你用ABAP程序自动修复ACDOCA表异常

SAP财务数据一致性检查&#xff1a;手把手教你用ABAP程序自动修复ACDOCA表异常 在SAP财务模块的日常运维中&#xff0c;ACDOCA表作为新总账(New GL)的核心表&#xff0c;承载着所有财务凭证的明细数据。然而在实际操作中&#xff0c;我们经常会遇到ACDOCA表与BSEG表数据不一致的…...

Asian Beauty Z-Image Turbo开箱即用:浏览器访问即启东方人像生成服务

Asian Beauty Z-Image Turbo开箱即用&#xff1a;浏览器访问即启东方人像生成服务 1. 项目简介 Asian Beauty Z-Image Turbo是一款专注于东方美学人像生成的本地化工具&#xff0c;基于通义千问Tongyi-MAI Z-Image底座模型&#xff0c;结合专门训练的Asian-beauty权重开发而成…...

Kimi-VL-A3B-Thinking效果展示:同一张发票图,连续追问税额、日期、供应商等字段

Kimi-VL-A3B-Thinking效果展示&#xff1a;同一张发票图&#xff0c;连续追问税额、日期、供应商等字段 1. 模型效果惊艳展示 Kimi-VL-A3B-Thinking作为一款高效的多模态视觉语言模型&#xff0c;在处理复杂文档理解任务时展现出令人印象深刻的能力。我们将通过一张普通发票的…...

深入解析CoT蒸馏与GRPO:如何高效训练具备推理能力的小模型

1. 从零理解CoT蒸馏&#xff1a;让大模型的"思考能力"装进小模型 第一次听说CoT蒸馏这个概念时&#xff0c;我正被一个实际问题困扰&#xff1a;客户需要在智能音箱上部署数学解题功能&#xff0c;但GPT-4的API调用成本高得吓人。当时尝试直接用7B小模型微调&#xf…...