日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

Springboot第二篇:与前端fetch通信(附springboot解决跨域方法)

發布時間:2023/12/18 HTML 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Springboot第二篇:与前端fetch通信(附springboot解决跨域方法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

說到與前端通信,明白人都知道這章肯定會寫兩部分的東西啦。

?

關于后臺

?

①首先回顧前文,上一章環境搭建如圖:

?

?

②我們在maven.example.controller下添加一個文件,并附上如圖代碼:

?

③:上面又多出了兩個注解,分別是@RestController、@RequestMapping。他們有著什么含義呢?

?

@RestController: 它是作為一個Web?@Controller存在的,用于專門接收傳入的Web請求。

@RequestMapping: 它提供了“路由”信息。 如圖它會告訴Spring,任何帶有/ path的HTTP請求都會映射到home方法上去。

?

④: 對應的home方法還能接收HTTP傳輸的數據,前提是要保持接收與發送數據的類型是對應的,相關我們會在本章節后面補充上

?

⑤: 啟動服務,開始編寫前端代碼。

?


?

關于前端

?

前提:我們這里使用的是fetch,而不是XMLHttpRequest,fetch細的知識點的話在springboot框架篇章里不會細說,會放到之后的前端篇章里說。

?

①:相比XMLHttpRequest, 我相信fetch更代表著未來。不過fetch仍有一些缺點,其中一個就是對于舊版本的瀏覽器, 我們需要配置fetch-polyfill才能使用fetch。以下是支持原生fetch各個瀏覽器的最低版本圖:

?

②:話不多說,這里開始上代碼吧:

fetch('http://localhost:8080/index/home', {method:'post',}).then(response => response.text()).then(data => {alert(data)}).catch(function(e){alert("error:" + e);})

?

?

③:以上我并沒有傳輸Data到后臺,關于傳輸數據前后端的對應性,我們要放在本章的下一節來講。 另外關于以上代碼,需要注意以下部分:

因為我本地現在暫時沒有配反響代理, 所以URL地址為如此, 但如果配備了反向代理, URL地址應寫為 '/index/home'。

?

④:運行程序,進行通信后,我們會發現瀏覽器曝出了跨域的問題:

?

?

⑤:我本地的前端框架用的是react,關于編譯,現在用的是官方提供的webpack配置文件,還沒有改著用自己寫的,所以關于反向代理的處理,我就先寫在springboot這邊,讓我們重新轉回springboot。

?


?

再回后臺

?

①:關于跨域的處理,我部署為支持所有路由,而非設置單個路由,單個路由設置需要用@CrossOrigin標簽。這里通過用自定義addCorsMappings(CorsRegistry)方法注冊WebMvcConfigurer bean來定義全局CORS配置,更改App.java代碼即可:

package maven.example;import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.context.annotation.Bean; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@SpringBootApplication public class App {public static void main(String[] args) throws Exception {SpringApplication.run(App.class, args);}@Beanpublic WebMvcConfigurer corsConfigurer() {return new WebMvcConfigurer() {public void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**");}};}}

?

?

②: 重新運行新的jar,再刷新網頁,會發現通信已成功。

下一章為關于前后端通信數據處理方式

轉載于:https://www.cnblogs.com/tianshu/p/9128952.html

總結

以上是生活随笔為你收集整理的Springboot第二篇:与前端fetch通信(附springboot解决跨域方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。