SpringMVC注解@CrossOrigin跨域問題詳解
前言
一般的,只要網(wǎng)站的【協(xié)議名protocol】、【主機(jī)host】、【端口號port】這三個中的任意一個不同,網(wǎng)站間的數(shù)據(jù)請求與傳輸便構(gòu)成了跨域調(diào)用 跨域:瀏覽同源策略的造成,是瀏覽器對JavaScript施加的安全限制 CORS是一種可以解決跨域問題的技術(shù)
SprinMVC通過@CrossOrigin注解解決跨域
在Spring MVC4.2之后推出了@CrossOrigin注解來解決跨域問題,而在4.2之前我們都是通過定義注冊過濾器的方式來解決跨域問題的
@CrossOrigin的參數(shù)
1、origins:允許可訪問的域列表;*表示可以是任何來源
2、maxAge:準(zhǔn)備響應(yīng)前的緩存持續(xù)的最大時間(單位:秒)
@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('請求報錯!');
}
})
到此這篇關(guān)于SpringMVC注解@CrossOrigin跨域問題詳解的文章就介紹到這了,更多相關(guān)@CrossOrigin跨域問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于application和bootstrap的加載順序及區(qū)別說明
這篇文章主要介紹了application和bootstrap的加載順序及區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
WIN7系統(tǒng)JavaEE(java)環(huán)境配置教程(一)
這篇文章主要介紹了WIN7系統(tǒng)JavaEE(java+tomcat7+Eclipse)環(huán)境配置教程,本文重點(diǎn)在于java配置,感興趣的小伙伴們可以參考一下2016-06-06
Spring防止重復(fù)點(diǎn)擊的兩種實(shí)現(xiàn)方法
頁面重復(fù)提交導(dǎo)致的問題就是數(shù)據(jù)被重復(fù)保存,我們經(jīng)常會誤觸點(diǎn)擊兩次,所以本文小編給大家介紹了Spring防止重復(fù)點(diǎn)擊的兩種實(shí)現(xiàn)方法,需要的朋友可以參考下2025-01-01
mybatis 忽略實(shí)體對象的某個屬性(2種方式)
這篇文章主要介紹了mybatis 忽略實(shí)體對象的某個屬性方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
springmvc—handlermapping三種映射方式
這篇文章主要介紹了springmvc—handlermapping三種映射方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

