javascript
SpringBoot中通过重写WebMvcConfigurer的addCorsMapping方法实现后台服务解决跨域问题
場(chǎng)景
之所以會(huì)跨域,是因?yàn)槭艿搅送床呗缘南拗?#xff0c;同源策略要求源相同才能正常進(jìn)行通信,即協(xié)議、域名、端口號(hào)都完全一致。
瀏覽器出于安全的考慮,使用 XMLHttpRequest對(duì)象發(fā)起 HTTP請(qǐng)求時(shí)必須遵守同源策略,否則就是跨域的HTTP請(qǐng)求,默認(rèn)情況下是被禁止的。換句話說,瀏覽器安全的基石是同源策略。
?
在使用SpringBoot寫的后臺(tái)接口,再通過js進(jìn)行請(qǐng)求時(shí)提示跨域問題,但是直接在瀏覽器中請(qǐng)求或者使用postman請(qǐng)求是沒有問題的。
?
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號(hào)
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。
實(shí)現(xiàn)
在SpringBoot項(xiàng)目中只需要編寫一個(gè)配置類使其實(shí)現(xiàn)WebMvcConfigurer接口并重寫其addCorsMappings方法即可。
?
代碼如下
@Configuration public class ResourcesConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {// 設(shè)置允許跨域的路徑registry.addMapping("/**")// 設(shè)置允許跨域請(qǐng)求的域名.allowedOrigins("*")// 是否允許證書.allowCredentials(true)// 設(shè)置允許的方法.allowedMethods("GET", "POST", "DELETE", "PUT")// 設(shè)置允許的header屬性.allowedHeaders("*")// 跨域允許時(shí)間.maxAge(3600);}}然后在重寫的方法中設(shè)置允許跨域訪問的路徑和域名以及允許發(fā)方法和header等,這里是設(shè)置的允許所有。
總結(jié)
以上是生活随笔為你收集整理的SpringBoot中通过重写WebMvcConfigurer的addCorsMapping方法实现后台服务解决跨域问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android中使用Room时怎样存储带
- 下一篇: AndroidStudio中提示:Did