前言
跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。本文將詳細介紹關于Spring MVC跨域問題解決的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
問題
使用Spring mvc 開發了一個Restful 接口 供前端調用
1
2
|
@PostMapping ( "/search" ) public List<Map> search( @RequestBody QueryParams query) |
但前端調用時失敗 提示
1
|
OPTIONS 403 |
應該是跨域問題
解決
Spring MVC 已經有很好的解決方案了 直接添加一個注解( @CrossOrigin) 即可解決跨域問題
1
2
3
|
@CrossOrigin @PostMapping ( "/search" ) public List<Map> search( @RequestBody QueryParams query) |
沒有添加注釋時 本地通過Restlet Client請求的返回頭
1
2
3
4
|
HTTP/ 1.1 200 Content-Type: application/json;charset=UTF- 8 Transfer-Encoding: chunked Date: Thu, 14 Sep 2017 13 : 02 : 49 GMT |
添加注釋后
1
2
3
4
5
6
7
|
HTTP/ 1.1 200 Access-Control-Allow-Origin: chrome-extension: //aejoelaoggembcahagimdiliamlcdmfm Vary: Origin Access-Control-Allow-Credentials: true Content-Type: application/json;charset=UTF- 8 Transfer-Encoding: chunked Date: Thu, 14 Sep 2017 13 : 04 : 26 GMT |
參考文檔
https://spring.io/blog/2015/06/08/cors-support-in-spring-framework
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:https://segmentfault.com/a/1190000011174645