亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

第二十五章:SpringBoot添加支持CORS跨域訪問

simpleapples / 2889人閱讀

摘要:本章目標基于項目搭建可以站外請求訪問的跨域資源服務(wù)器。允許所有的請求域名訪問我們的跨域資源,可以固定單條或者多條內(nèi)容,如,只有百度可以訪問我們的跨域資源。

CORS(Cross-Origin Resource Sharing)"跨域資源共享",是一個W3C標準,它允許瀏覽器向跨域服務(wù)器發(fā)送Ajax請求,打破了Ajax只能訪問本站內(nèi)的資源限制,CORS在很多地方都有被使用,微信支付的JS支付就是通過JS向微信服務(wù)器發(fā)送跨域請求。開放Ajax訪問可被跨域訪問的服務(wù)器大大減少了后臺開發(fā)的工作,前后臺工作也可以得到很好的明確以及分工,下面我們就看講一下如何讓你的SpringBoot項目支持CORS跨域。

本章目標

基于SpringBooot項目搭建可以站外Ajax請求訪問的跨域資源服務(wù)器。

構(gòu)建項目

使用IDEA開發(fā)工具創(chuàng)建一個SpringBoot項目,預(yù)先添加Web依賴即可,項目結(jié)構(gòu)如下圖1所示:

圖1
CORSConfiguration

我們只需要添加項目Web依賴就可以了,下面我們開始添加CORS的配置信息,我們創(chuàng)建一個CORSConfiguration配置類,如下圖2所示:

圖2
上圖2內(nèi)我們的CORSConfiguration配置類繼承了WebMvcConfiugrationAdaper父類并且重寫了addCorsMappings方法,我們來簡單介紹下我們的配置信息

addMapping:配置可以被跨域的路徑,可以任意配置,可以具體到直接請求路徑。
allowedMethods:允許所有的請求方法訪問該跨域資源服務(wù)器,如:POST、GET、PUT、DELETE等。
allowedOrigins:允許所有的請求域名訪問我們的跨域資源,可以固定單條或者多條內(nèi)容,如:"http://www.baidu.com",只有百度可以訪問我們的跨域資源。
allowedHeaders:允許所有的請求header訪問,可以自定義設(shè)置任意請求頭信息,如:"X-YAUTH-TOKEN"

編寫跨域資源請求

我們的跨域配置到目前來說已經(jīng)配置完成了,SpringBoot已經(jīng)為我們內(nèi)置相關(guān)配置,我們只需要重寫方法修改部分參數(shù)即可,下面我們來創(chuàng)建一個測試跨域資源的控制器,如下圖3所示:

圖3
在圖3內(nèi)的IndexController控制器內(nèi),我們僅僅添加了一個測試返回文本的內(nèi)容,當然這個控制器可以處理任意業(yè)務(wù)邏輯。

測試跨域請求

我們在項目外創(chuàng)建一個index.html頁面(上傳碼云后會在resources目錄找到),頁面內(nèi)添加部分jquery代碼,如下圖4所示:

圖4
我們引用了在線的jquery代碼,并且在頁面加載的時候為id=cors的輸入按鈕綁定點擊事件,點擊按鈕時就會請求我們的/cors跨域資源路徑,下面我們來運行項目測試下跨域請求,項目運行日志如下圖5所示:

圖5
可以看到上圖5內(nèi)項目啟動時SpringBoot內(nèi)置的SpringMVC已經(jīng)把我們的/cors添加到映射集合,我們打開之前編寫的index.html網(wǎng)頁,界面效果如下圖6所示:

圖6
接下來我們點擊“CORS跨域測試”按鈕,查看下效果,如下圖7所示:

圖7
上圖7內(nèi)可以看到,界面給我返回了我們/cors路徑返回的文本內(nèi)容,證明我們的ajax請求完美的通過跨域資源庫訪問了開放跨域的資源路徑。

下面我們來把我們的跨域配置注釋掉,重啟項目后刷新index.html再次點擊“CORS跨域測試”按鈕,界面輸出效果如下圖8所示:

圖8
可以看到我們點擊后并沒有獲取到返回內(nèi)容,而是給我們提示了異常,告訴我們無法加載資源。

本章總結(jié)

本章簡單講解了SpringBoot項目對CORS請求的處理,完全自定義處理請求路徑,可對請求頭信息以及請求的域名進行控制。

本章代碼已經(jīng)上傳到碼云:

網(wǎng)頁地址:git.oschina.net/jnyqy/lessons
Git地址:git.oschina.net/jnyqy/lessons.git

SpringBoot相關(guān)系列文章,請訪問:目錄:SpringBoot學(xué)習(xí)目錄,感謝閱讀!

歡迎加入QQ技術(shù)交流群,共同進步。

QQ技術(shù)交流群

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/67676.html

相關(guān)文章

  • 第三十四章:SpringBoot配置類WebMvcConfigurerAdapter

    摘要:本章目標繼承采用形式實現(xiàn)個性化配置定制。本章代碼已經(jīng)上傳到碼云網(wǎng)頁地址地址相關(guān)系列文章請訪問目錄學(xué)習(xí)目錄相關(guān)系列文章請訪問通用查詢框架學(xué)習(xí)目錄相關(guān)系列文章請訪問目錄學(xué)習(xí)目錄感謝閱讀歡迎加入技術(shù)交流群,共同進步。 WebMvcConfigurerAdapter配置類其實是Spring內(nèi)部的一種配置方式,采用JavaBean的形式來代替?zhèn)鹘y(tǒng)的xml配置文件形式進行針對框架個性化定制,下面我...

    springDevBird 評論0 收藏0
  • SpringBoot非官方教程 | 第二十五篇:2小時學(xué)會springboot

    摘要:一什么是摘自官網(wǎng)翻譯采納了建立生產(chǎn)就緒應(yīng)用程序的觀點。優(yōu)先于配置的慣例,旨在讓您盡快啟動和運行。致力于簡潔,讓開發(fā)者寫更少的配置,程序能夠更快的運行和啟動。二搭建第一個程序可以在上建項目,也可以用構(gòu)建。已經(jīng)凌晨了,我要睡了源碼 一.什么是spring boot Takes an opinionated view of building production-ready Spring a...

    baukh789 評論0 收藏0
  • 第三五章SpringBoot與單元測試的小秘密

    摘要:本章目的基于平臺整合分別完成客戶端服務(wù)端的單元測試。在測試控制器內(nèi)添加了三個測試方法,我們接下來開始編寫單元測試代碼。總結(jié)本章主要介紹了基于平臺的兩種單元測試方式,一種是在服務(wù)端采用注入方式將需要測試的或者注入到測試類中,然后調(diào)用方法即可。 單元測試對于開發(fā)人員來說是非常熟悉的,我們每天的工作也都是圍繞著開發(fā)與測試進行的,在最早的時候測試都是采用工具Debug模式進行調(diào)試程序,后來Ju...

    hikui 評論0 收藏0
  • 《On Java 8》中文版,又名《Java 編程思想》中文第五版

    摘要:基于版本基于版本。由于中英行文差異,完全的逐字逐句翻譯會很冗余啰嗦。譯者在翻譯中同時參考了谷歌百度有道翻譯的譯文以及編程思想第四版中文版的部分內(nèi)容對其翻譯死板,生造名詞,語言精煉度差問題進行規(guī)避和改正。 來源:LingCoder/OnJava8 主譯: LingCoder 參譯: LortSir 校對:nickChenyx E-mail: 本書原作者為 [美] Bru...

    BingqiChen 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<