SpringMVC注解@CrossOrigin跨域问题详解

 更新时间:2023年11月17日 09:49:39   作者:牧码ya  
这篇文章主要介绍了SpringMVC注解@CrossOrigin跨域问题详解,跨域是浏览同源策略的造成,是浏览器对JavaScript施加的安全限制CORS是一种可以解决跨域问题的技术,需要的朋友可以参考下

前言

一般的,只要网站的【协议名protocol】、【主机host】、【端口号port】这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用 跨域:浏览同源策略的造成,是浏览器对JavaScript施加的安全限制 CORS是一种可以解决跨域问题的技术

SprinMVC通过@CrossOrigin注解解决跨域

在Spring MVC4.2之后推出了@CrossOrigin注解来解决跨域问题,而在4.2之前我们都是通过定义注册过滤器的方式来解决跨域问题的

@CrossOrigin的参数

1、origins:允许可访问的域列表;*表示可以是任何来源

2、maxAge:准备响应前的缓存持续的最大时间(单位:秒)

@CrossOrigin使用在Controller层

1、类上,此类中所有方法启用跨域支持

// 开启跨域支持
@CrossOrigin
@RestController
@RequestMapping("/user")
public class UserController {
}

2、方法上,仅此方法启用跨域支持

// 开启跨域支持
@CrossOrigin
@RequestMapping(value = "/findAll", method = RequestMethod.GET)
public List<User> findAll(){
	return userService.findAll();
}

注意

1、注解失效问题:此时Controlle的方法上@RequestMapping注解中需要声明请求方式即增加method=RequestMethod.XXX

2、添加注解后session失效问题:此时对的ajax请求中需要添加xhrFields:{withCredentials:true}(每个ajax中都需要加此属性,以保证session一致)

$.ajax({
	type: "post",
	url: '/user/login',
	xhrFields: {withCredentials: true},
	data: {
		username: username,
		password: password
	},
	success: function (msg) {
		console.log('登录成功');
	},
	error: function (msg) {
		console.log('请求报错!');
	}
})

到此这篇关于SpringMVC注解@CrossOrigin跨域问题详解的文章就介绍到这了,更多相关@CrossOrigin跨域问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 照片对比功能的实现

    Java 照片对比功能的实现

    这篇文章主要介绍了Java 照片比对功能实现类的示例代码,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-12-12
  • Java中使用异或运算符实现加密字符串

    Java中使用异或运算符实现加密字符串

    这篇文章主要介绍了Java中使用异或运算符实现加密字符串,本文直接给出实现代码,以及运算结果加密实例,需要的朋友可以参考下
    2015-06-06
  • java并发学习之BlockingQueue实现生产者消费者详解

    java并发学习之BlockingQueue实现生产者消费者详解

    这篇文章主要介绍了java并发学习之BlockingQueue实现生产者消费者详解,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • java 创建线程的四种方式

    java 创建线程的四种方式

    这篇文章主要介绍了java 创建线程的四种方式,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-11-11
  • SpringBoot之Profile的两种使用方式详解

    SpringBoot之Profile的两种使用方式详解

    当在不同的环境下,想通过修改配置文件来连接不同的数据库,比如在开发过程中启动项目时,想连接开发环境对应的数据库,可以在配置文件中指定environment=dev,其他环境类似,此时就需要用到Spring为我们提供的Profile功能,本文给大家介绍了SpringBoot之Profile的两种使用方式
    2024-10-10
  • Java 内置Http Server构建web应用案例详解

    Java 内置Http Server构建web应用案例详解

    这篇文章主要介绍了Java 内置Http Server构建web应用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • Spring中bean对象的装配方式、作用域及生命周期详解

    Spring中bean对象的装配方式、作用域及生命周期详解

    这篇文章主要介绍了Spring中bean对象的装配方式、作用域及生命周期详解,SprignBoot中 @Bean 完美的替换了了上面的这种在xml中配置的方法,使用以下方法就能让spring在需要自动创建Info对象时,自动调用这个方法,需要的朋友可以参考下
    2023-11-11
  • Java数据溢出代码详解

    Java数据溢出代码详解

    这篇文章主要介绍了Java数据溢出的相关内容,包括具体代码示例,分析比较详细,希望对大家有所帮助,感兴趣的朋友可以参考下。
    2017-09-09
  • java递归设置层级菜单的实现

    java递归设置层级菜单的实现

    本文主要介绍了java递归设置层级菜单的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 都9102年了,你还用for循环操作集合吗

    都9102年了,你还用for循环操作集合吗

    这篇文章主要给大家介绍了关于java中for循环操作集合使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03

最新评论