日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

基于SpringBoot解決CORS跨域的問題(@CrossOrigin)

瀏覽:21日期:2023-03-26 11:02:06
一、關于跨域介紹

在前后分離的架構下,跨域問題難免會遇見比如,站點 http://domain-a.com 的某 HTML 頁面通過 的 src 請求 http://domain-b.com/image.jpg。

網絡上的許多頁面都會加載來自不同域的CSS樣式表,圖像和腳本等資源。

出于安全原因,瀏覽器限制從腳本內發起的跨源HTTP請求。

例如,XMLHttpRequest和Fetch API遵循同源策略。

這意味著使用這些API的Web應用程序只能從加載應用程序的同一個域請求HTTP資源,除非使用CORS頭文件。

跨域的體現,在于它的域名不同或者端口不同,但要注意以下的形式為非跨域模式

http://www.example.com/index.html ==> http://www.example.com/login.html

二、Spring Boot跨域(@CrossOrigin)

當然這里雖然指SpringBoot但是SpringMVC也是一樣的,要求在Spring4.2及以上的版本

1、@CrossOrigin使用場景要求

jdk1.8+

Spring4.2+

2、@CrossOrigin源碼解析(翻譯參考網絡,文末列出參考地址)

@Target({ ElementType.METHOD, ElementType.TYPE })@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface CrossOrigin { String[] DEFAULT_ORIGINS = { '*' }; String[] DEFAULT_ALLOWED_HEADERS = { '*' }; boolean DEFAULT_ALLOW_CREDENTIALS = true; long DEFAULT_MAX_AGE = 1800; /** * 同origins屬性一樣 */ @AliasFor('origins') String[] value() default {}; /** * 所有支持域的集合,例如'http://domain1.com'。 * <p>這些值都顯示在請求頭中的Access-Control-Allow-Origin * '*'代表所有域的請求都支持 * <p>如果沒有定義,所有請求的域都支持 * @see #value */ @AliasFor('value') String[] origins() default {}; /** * 允許請求頭重的header,默認都支持 */ String[] allowedHeaders() default {}; /** * 響應頭中允許訪問的header,默認為空 */ String[] exposedHeaders() default {}; /** * 請求支持的方法,例如'{RequestMethod.GET, RequestMethod.POST}'}。 * 默認支持RequestMapping中設置的方法 */ RequestMethod[] methods() default {}; /** * 是否允許cookie隨請求發送,使用時必須指定具體的域 */ String allowCredentials() default ''; /** * 預請求的結果的有效期,默認30分鐘 */ long maxAge() default -1;}3、@CrossOrigin使用

Spring Boot下的請求處理控制器

package com.example.demo.controller;import com.example.demo.domain.User;import com.example.demo.service.IUserFind;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/** * @Title: UserController * @ProjectName demo * @Description: 請求處理控制器 * @author 淺然 * @date 2018/7/2022:18**/@RestController//實現跨域注解//origin='*'代表所有域名都可訪問//maxAge飛行前響應的緩存持續時間的最大年齡,簡單來說就是Cookie的有效期 單位為秒//若maxAge是負數,則代表為臨時Cookie,不會被持久化,Cookie信息保存在瀏覽器內存中,瀏覽器關閉Cookie就消失@CrossOrigin(origins = '*',maxAge = 3600)public class UserController { @Resource private IUserFind userFind; @GetMapping('finduser') public User finduser(@RequestParam(value='id') Integer id){ //此處省略相應代碼 }}

后臺返回的數據

基于SpringBoot解決CORS跨域的問題(@CrossOrigin)

前端跨域請求

<!DOCTYPE html><html> <head> <meta charset='utf-8' /> <title>demo</title> <script type='text/javascript' src='http://www.b3g6.com/bcjs/js/jquery-3.3.1.min.js' ></script> </head> <body> <input type='button' value='測試' onclick='ajaxloding()' /> <div id='usermessage'></div> <script> var getdata=0; function ajaxloding(){ $.ajax({ async:false, type:'get', url:'http://localhost:8080/api/finduser?id=1', contentType: 'application/x-www-form-urlencoded', dataType: 'json', data: {}, success:function(result){ getdata=result.name }, error: function (errorMsg) {//請求失敗時執行該函數alert('請求數據失敗!'); } }); $('#usermessage').text(getdata) } </script> </body></html>

這樣就解決了跨域問題,獲取了后臺的數據

基于SpringBoot解決CORS跨域的問題(@CrossOrigin)

參考

跨域 HTTP 請求

補充:springboot的@CrossOrigin('*')跨域仍然失效

項目中偶爾遇到即使加了@CrossOrigin跨域失敗:

第一次遇到時間有限沒解決:前端直接添加跨域處理。

jQuery.support.cors = true;

后續第二次遇到該問題,作為后端不能讓前端解決跨域問題。

debug詳細查找原因:發現在自定義攔截器返回失敗,跨域失敗。

明白該問題:需要以下知識。

(mvc攔截器的鏈路模式)

(Cors攔截器加載)

(自定義的攔截器加載)

(攔截器的加載順序)

因為攔截器是鏈路模式:CrossOrigin也是攔截器在自定義攔截器之后。所以在自定義攔截器失敗后,處理

跨域的攔截器未處理,造成跨域失敗。

解決該問題的辦法:

添加filter ,因為Filter優先于攔截器執行,所以自己創建的攔截器不會影響跨域處理。

@Configurationpublic class CorsConfig { @Bean public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.addAllowedOrigin('*'); config.setAllowCredentials(true); config.addAllowedMethod('*'); config.addAllowedHeader('*'); UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource(); configSource.registerCorsConfiguration('/**', config); return new CorsFilter(configSource); }}

二:springboot升級到2.2.0,在新版本的springmvc中,把cors攔截添加到了攔截器的第一位,所以不會有該問題。

如果允許可以直接升級springboot或mvc版本。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产亚洲精品自拍| 日韩中文在线电影| 亚洲激情欧美| 久久国产电影| 色婷婷狠狠五月综合天色拍| 国精品产品一区| 成人一区而且| 国产不卡人人| 久久视频精品| 99热精品在线观看| 男女性色大片免费观看一区二区| 亚洲视频二区| 91嫩草精品| 一区二区国产在线| 日本久久一区| 麻豆久久久久久| 97国产精品| 免费观看不卡av| 丝袜a∨在线一区二区三区不卡| 在线精品视频一区| 国产精品尤物| 中文字幕在线看片| 国户精品久久久久久久久久久不卡| 影音国产精品| 日本国产一区| 久久97视频| 日韩中文视频| 午夜在线视频一区二区区别| 免费日韩av片| 日本在线不卡视频| 欧美国产另类| 欧美va天堂| 中文字幕av一区二区三区四区| 欧美精品观看| 国产精品精品国产一区二区| 激情欧美一区| 综合激情在线| 麻豆国产精品一区二区三区| 欧美韩日一区| jiujiure精品视频播放| 视频在线观看91| 国产精品丝袜在线播放| 日韩在线免费| 午夜一级在线看亚洲| 国产精品流白浆在线观看| 国产在线|日韩| 亚洲18在线| 国产精品毛片久久| 亚洲免费影院| 国产一区二区三区四区| 99国产精品| 欧美91在线| 亚洲欧美日韩一区在线观看| 国产精品高潮呻吟久久久久| 欧美丝袜一区| 久久国产人妖系列| 亚洲韩日在线| 国产日韩欧美三区| 国产v综合v| 日韩av成人高清| 在线一区视频观看| 国产欧美二区| 日韩视频在线一区二区三区 | 日本欧美一区| 天堂av在线| 国产精品普通话对白| 国产精品嫩模av在线| 欧美日韩国产欧| 久久精品国产99国产| 99riav国产精品| 91综合网人人| 欧美日韩精品一区二区三区视频 | 狠狠久久婷婷| 色婷婷亚洲mv天堂mv在影片| 一区二区不卡| 日本久久成人网| 国产精品一区二区三区www | 亚洲国产福利| 日韩欧美精品一区二区综合视频| 特黄毛片在线观看| 国产欧美久久一区二区三区| 9国产精品视频| 国产传媒在线观看| 日韩精品第一| 久久福利影视| 久久视频一区| 91综合网人人| 国产精品对白| 亚洲精品自拍| 99在线|亚洲一区二区| 精品国产第一福利网站| 欧美日本久久| 天堂av在线一区| 香蕉人人精品| 午夜精品成人av| 欧美激情网址| 国产亚洲久久| 日韩欧美中文字幕电影 | 日韩一区免费| 日韩午夜av| 欧美va天堂| 91精品国产调教在线观看| 久久久久久夜| 国内在线观看一区二区三区| 亚洲三级精品| 香蕉成人久久| 婷婷久久一区| 久久国产欧美| 欧美gv在线| 中文字幕一区久| 高清一区二区三区av| 欧美激情三区| 国产精品资源| 国产激情综合| 久久av中文| 国产乱人伦丫前精品视频| 日韩中文字幕在线一区| 丝袜a∨在线一区二区三区不卡| 国产伊人精品| 亚洲高清二区| 精品国模一区二区三区| 欧美sm一区| 久久高清免费| 最新亚洲一区| 免费不卡在线视频| 亚洲精选av| 欧美一级二区| 欧美亚洲人成在线| 国产亚洲高清一区| 欧美激情综合| 国产日韩视频在线| 美女精品视频在线| 国产a久久精品一区二区三区| 美女性感视频久久| 久久99影视| 高潮久久久久久久久久久久久久| а√天堂8资源中文在线| 91一区二区| 免费久久精品| 亚洲日本久久| 国产欧美日韩| 成人国产精选| 亚洲福利免费| 欧美综合二区| 日韩av一区二区在线影视| 911精品国产| 国产不卡一区| 欧美精品一二| 亚洲我射av| 国产亚洲字幕| 精品美女视频 | 综合亚洲视频| 麻豆中文一区二区| av在线日韩| 99国产精品视频免费观看一公开 | 国产精品久久乐| 日韩一区二区在线免费| 欧美日韩国产综合网| 午夜在线一区二区| 久久国产三级| 欧美香蕉视频| 亚洲尤物在线| 国产精品亚洲欧美| 日本国产精品| 中文字幕成人| 精品国产精品国产偷麻豆 | 婷婷亚洲综合| 日本不卡视频一二三区| 精品网站aaa| 欧美福利在线| 777久久精品| 精品入口麻豆88视频| 久久人人99| 亚洲精品伊人| 理论片午夜视频在线观看| 日韩在线一区二区| 蜜桃久久久久| 婷婷亚洲五月| 欧美国产另类| 夜夜精品视频| 国产精品久久国产愉拍| 国产精品99一区二区| 欧美一区二区三区久久| 久久青草久久| 日韩高清不卡一区| 91精品xxx在线观看| 亚州精品视频| 国产一区二区三区日韩精品| 亚洲免费影院| 伊人久久在线| 日本欧美韩国一区三区| 久久国产日韩| 国产视频一区二| 蜜桃国内精品久久久久软件9| 欧美日本二区| 性欧美69xoxoxoxo| 精品国产a一区二区三区v免费| 黄色成人精品网站| 精品一区二区三区视频在线播放| 美女日韩在线中文字幕|