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

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

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

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

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

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

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

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

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

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

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源碼解析(翻譯參考網(wǎng)絡,文末列出參考地址)

@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隨請求發(fā)送,使用時必須指定具體的域 */ 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//實現(xiàn)跨域注解//origin='*'代表所有域名都可訪問//maxAge飛行前響應的緩存持續(xù)時間的最大年齡,簡單來說就是Cookie的有效期 單位為秒//若maxAge是負數(shù),則代表為臨時Cookie,不會被持久化,Cookie信息保存在瀏覽器內存中,瀏覽器關閉Cookie就消失@CrossOrigin(origins = '*',maxAge = 3600)public class UserController { @Resource private IUserFind userFind; @GetMapping('finduser') public User finduser(@RequestParam(value='id') Integer id){ //此處省略相應代碼 }}

后臺返回的數(shù)據(jù)

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

前端跨域請求

<!DOCTYPE html><html> <head> <meta charset='utf-8' /> <title>demo</title> <script type='text/javascript' src='http://m.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) {//請求失敗時執(zhí)行該函數(shù)alert('請求數(shù)據(jù)失敗!'); } }); $('#usermessage').text(getdata) } </script> </body></html>

這樣就解決了跨域問題,獲取了后臺的數(shù)據(jù)

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

參考

跨域 HTTP 請求

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

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

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

jQuery.support.cors = true;

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

debug詳細查找原因:發(fā)現(xiàn)在自定義攔截器返回失敗,跨域失敗。

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

(mvc攔截器的鏈路模式)

(Cors攔截器加載)

(自定義的攔截器加載)

(攔截器的加載順序)

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

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

解決該問題的辦法:

添加filter ,因為Filter優(yōu)先于攔截器執(zhí)行,所以自己創(chuàng)建的攔截器不會影響跨域處理。

@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版本。

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

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
天堂av在线一区| 国产一区二区三区视频在线| 欧美黑人做爰爽爽爽| 色狠狠一区二区三区| 免费看精品久久片| 鲁大师影院一区二区三区| 午夜亚洲精品| 免费视频一区二区| 中文字幕中文字幕精品| 中文字幕乱码亚洲无线精品一区| 中文视频一区| 亚洲精品日本| 日本免费在线视频不卡一不卡二| 婷婷精品在线| 日本午夜精品久久久| 国产精品中文| 激情中国色综合| 97人人精品| 成人自拍av| 在线一区视频| 欧美一区自拍| 欧美韩日一区| 日韩视频一区| 青青草精品视频| 久久伊人久久| 四虎影视精品| 中文无码久久精品| 国产欧美自拍一区| sm捆绑调教国产免费网站在线观看| 国产综合色区在线观看| 亚洲欧美视频| 欧美激情aⅴ一区二区三区| 日本激情一区| 日韩视频二区| 天堂va欧美ⅴa亚洲va一国产| 欧美日韩一区自拍| 国产白浆在线免费观看| 欧美日韩视频| 日本午夜精品| 久久久久免费| 视频一区在线视频| 国产精品欧美大片| 精品捆绑调教一区二区三区 | 国产精品中文| 日本在线啊啊| 亚洲在线国产日韩欧美| 91精品一区| 久久国产99| 亚洲三级视频| 日韩一区二区三区免费播放| 91亚洲国产| 91免费精品| 日韩中文字幕一区二区三区| 亚洲人成高清| 狠狠久久婷婷| 免费视频久久| 久久免费国产| 999精品在线| 日韩精品a在线观看91| 日韩欧美一区二区三区在线观看| 午夜久久久久| 欧美视频久久| 18国产精品| 激情婷婷久久| 日韩专区精品| 久草免费在线视频| 欧美二三四区| 妖精视频成人观看www| 夜夜精品视频| 蜜臀精品久久久久久蜜臀| 日本免费在线视频不卡一不卡二| 日韩精品1区2区3区| 久久激情av| 麻豆精品在线观看| 中文一区在线| 国产精选一区| 免费观看在线色综合| 精品少妇一区| 国产一区二区三区不卡视频网站 | 视频精品一区二区| 五月国产精品| 日韩激情视频网站| 欧美久久精品| 免费中文字幕日韩欧美| 欧美日一区二区三区在线观看国产免| 国产精品资源| 国产精品免费99久久久| 最新国产精品视频| www.51av欧美视频| 亚洲香蕉视频| 日本精品在线中文字幕| 激情黄产视频在线免费观看| 丝袜诱惑一区二区| 日韩高清一级| 日本国产亚洲| 国产精品嫩模av在线| 精品一区二区三区中文字幕 | 久久精品天堂| 99亚洲精品| 精品国产午夜肉伦伦影院| 亚洲精品字幕| 久久亚洲精品中文字幕蜜潮电影| 高清精品久久| 欧美专区一区| 亚洲午夜精品久久久久久app| 久久亚洲电影| 在线精品亚洲| 91成人在线网站| 亚洲夜间福利| 模特精品在线| 亚洲一二av| 婷婷精品进入| 日本午夜精品久久久| 中文字幕高清在线播放| 青青国产精品| 亚洲视频二区| 喷白浆一区二区| 欧美在线综合| 亚洲欧美网站| 中文不卡在线| 亚洲精品大片| 日韩精品三区四区| 91精品一区| 国产精品白丝久久av网站| 国产亚洲电影| 日韩av中文字幕一区二区三区| 亚洲字幕久久| 日韩精品久久久久久| 午夜天堂精品久久久久| 日韩高清一区在线| 国产日韩免费| 久久99久久久精品欧美| 久久精品99国产国产精| 国产精品一国产精品k频道56| 久久国产麻豆精品| 国产精品jk白丝蜜臀av小说| 国产精品99久久免费| 麻豆国产精品视频| 成人国产精品一区二区网站| 91麻豆国产自产在线观看亚洲| 91一区二区三区四区| 国产理论在线| 亚洲第一精品影视| 99成人在线| 中文字幕一区二区三区四区久久 | 欧美亚洲一级| 麻豆精品久久久| 色网在线免费观看| 99精品在线观看| 鲁大师成人一区二区三区 | 国产福利一区二区精品秒拍| 久久精品色播| 99成人在线视频| av不卡免费看| 日韩av中文字幕一区二区三区| 欧美成人精品午夜一区二区| 不卡专区在线| 国产美女一区| 欧美日韩99| 国产成人免费精品| 91成人精品视频| 亚洲精品看片| 精品欧美日韩精品| 久久一区二区中文字幕| 亚洲成人一区| 日韩av中文字幕一区二区| 国产一区二区精品久| 韩日一区二区三区| 奇米亚洲欧美| 国产激情在线播放| 久久成人国产| 麻豆传媒一区二区三区| 久久精品国产大片免费观看| 亚洲乱码一区| 国产91在线播放精品| av一区二区高清| 91欧美日韩在线| 亚洲a在线视频| 日韩一二三区在线观看| 美女在线视频一区| 91精品二区| 欧美精品成人| 黄色日韩在线| 另类综合日韩欧美亚洲| 婷婷综合激情| 国产精品日本一区二区不卡视频| 日韩毛片在线| 日韩高清中文字幕一区| 亚洲不卡系列| 国产日韩免费| 尤物在线精品| 欧美aaaaaa午夜精品| 99精品99| 成人在线免费观看91| 欧美一区=区| 国产 日韩 欧美 综合 一区| 亚洲性视频在线| 99久久99久久精品国产片果冰| 国产日韩亚洲| 老鸭窝毛片一区二区三区|