前后端項(xiàng)目分離解決cors錯(cuò)誤的方法詳解
前言
前后端分離項(xiàng)目中接口請(qǐng)求會(huì)出現(xiàn)cors錯(cuò)誤,引發(fā)cors錯(cuò)誤的原因?yàn)榭缬蛘?qǐng)求失敗。
具體解決方法有配置類重寫addCorsMappings方法、controller添加@CrossOrigin注解、使用nginx解決跨域請(qǐng)求
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、什么是跨域請(qǐng)求
例如:http://192.168.1.100:8080為java項(xiàng)目服務(wù)器鏈接,當(dāng)前端頁(yè)面鏈接中傳輸協(xié)議(http、https)、ip地址、服務(wù)端口任有一個(gè)不同,即為跨域。
二、配置類重寫addCorsMappings方法
1、CorsConfig配置類添加@Configuration注解
2、繼承WebMvcConfigurer
3、重寫addCorsMappings方法
完成后再啟動(dòng)項(xiàng)目時(shí)會(huì)自動(dòng)加載
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry){ //設(shè)置允許跨域的路徑 registry.addMapping ("/**") //設(shè)置允許跨域請(qǐng)求的域名 .allowedOriginPatterns ("*") //是否允許證書 .allowCredentials (true) //設(shè)置允許的方法 .allowedMethods ("GET","POST") //設(shè)置允許的header屬性 .allowedHeaders ("*") //允許跨域時(shí)間 .maxAge (3600); } }
三、controller添加@CrossOrigin注解
注:添加@CrossOrigin注解解決跨域請(qǐng)求僅限springboot項(xiàng)目,且所有controller層添加太過繁瑣,也可在父controller中添加,所有子controller繼承
四、使用nginx解決跨域請(qǐng)求
1、http://nginx.org/en/download.html 從nginx官網(wǎng)下載解壓
2、編輯conf下的nginx.conf
server { listen 80; #配置nginx端口 server_name localhost; #需要鏈接的IP地址 location / { root E:/xxx/xxx/webapp; #web代碼存放路勁 index index.html; #啟動(dòng)nginx后打開的頁(yè)面 } #將含有/api的接口進(jìn)行代理 location /api/ { proxy_pass http://localhost:8081; #需要訪問的后端鏈接 }
3、啟動(dòng)nginx
打開cmd命令窗口進(jìn)入到解壓路徑(含有nginx.exe的路徑),輸入nginx.exe啟動(dòng)nginx,在瀏覽器輸入localhost:80即可打開前端代碼頁(yè)面。
直接關(guān)閉cmd窗口無法停止nginx,需在cmd輸入nginx -s quit命令進(jìn)行停止。
注:輸入nginx.exe的頁(yè)面無法繼續(xù)輸入命令行,需重新開啟一個(gè)cmd窗口。
總結(jié)
這里對(duì)文章進(jìn)行總結(jié):
以上就是今天要講的內(nèi)容,本文僅僅簡(jiǎn)單介紹了跨域請(qǐng)求中cors錯(cuò)誤的解決方法。
到此這篇關(guān)于前后端項(xiàng)目分離解決cors錯(cuò)誤的文章就介紹到這了,更多相關(guān)前后端項(xiàng)目分離cors錯(cuò)誤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MVC頁(yè)面之間參數(shù)傳遞實(shí)現(xiàn)過程圖解
這篇文章主要介紹了MVC頁(yè)面之間參數(shù)傳遞實(shí)現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11request如何獲取body的json數(shù)據(jù)
這篇文章主要介紹了request如何獲取body的json數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06SpringBoot動(dòng)態(tài)定時(shí)功能實(shí)現(xiàn)方案詳解
在SpringBoot項(xiàng)目中簡(jiǎn)單使用定時(shí)任務(wù),不過由于要借助cron表達(dá)式且都提前定義好放在配置文件里,不能在項(xiàng)目運(yùn)行中動(dòng)態(tài)修改任務(wù)執(zhí)行時(shí)間,實(shí)在不太靈活。現(xiàn)在我們就來實(shí)現(xiàn)可以動(dòng)態(tài)修改cron表達(dá)式的定時(shí)任務(wù),感興趣的可以了解一下2022-11-11idea構(gòu)建web項(xiàng)目的超級(jí)詳細(xì)教程
好多朋友在使用IDEA創(chuàng)建項(xiàng)目時(shí),總會(huì)碰到一些小問題,下面這篇文章主要給大家介紹了關(guān)于idea構(gòu)建web項(xiàng)目的超級(jí)詳細(xì)教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03Spring MVC 擴(kuò)展和 SSM 框架整合步驟詳解
在前端頁(yè)面后后臺(tái)交互的過程中,需要一種格式清晰、高效且兩端都可以輕松使用的數(shù)據(jù)格式做交互的媒介,JSON正可以滿足這一需求,下面學(xué)習(xí)使用Spring MVC 框架處理JSON數(shù)據(jù),感興趣的朋友一起看看吧2024-08-08