SpringMVC跨域請求問題

2021-08-14 08:15:52 字數 1201 閱讀 2896

前言:眾所周知,出於安全考慮,xmlhttpreqeust 物件發起的 http 請求必須滿足同源策略(same-origin policy)的規定,否則瀏覽器將會對該請求進行限制。雖然同源策略的實現帶來的web安全的提公升,但是卻為一些正規的跨域需求帶來不便,故此衍生出了若干種繞開同源策略的跨域方案,其中 jsonp 就是使用的比較多的方案,但 jsonp 是乙個非官方的跨域協議同時也只支援 get 請求,而後來 w3c 推出 cors 協議相比 jsonp 支援更多的方法也允許使用普通 xmlhttprequest 傳送請求,所以我們有理由使用更加現代的跨域方案。關於 cors 的詳細內容可以閱讀文章http訪問控制(cors) 。

//#允許向該伺服器提交請求的uri,*表示全部允許,在springmvc中,如果設成*,會自動轉成當前請求頭中的origin

response.setheader("access-control-allow-origin","*");

//#允許提交請求的方法,*表示全部允許

response.setheader("access-control-allow-methods","post, get,put,delete,patch");

//預檢請求的快取時間(秒),即在這個時間段裡,對於相同的跨域請求不會再預檢了

response.setheader("access-control-max-age","1800");

//允許cookie跨域,在做登入校驗的時候有用

response.setheader("access-control-allow-credentials","true");

//允許訪問的頭資訊

response.setheader("access-control-allow-headers","content-type, access-control-allow-headers, authorization, x-requested-with");

參考:

SpringMVC跨域亂碼問題

最近的工作重點轉移至web開發,使用框架主要還是spring mvc,jackson,jquery,但在開發中又遭遇了n年前的跨域問題,jsonp亂碼問題,其實這些問題產生原因很簡單,但實際上解決起來卻需要了解各種機制執行內幕.解決方案 當然,網上還有不少自定義converter的方法,這些方法可解...

springmvc解決跨域問題

在spring mvc.xml中配置 allowed origins allow credentials true max age 1800 allowed methods get,post,options 過濾器 public class corsfilter implements filter ...

web請求跨域問題

rpc soa中非常常見的問題,那麼它是什麼呢?本質上是client的browser的一種保護機制,客戶端像伺服器a傳送了乙個請求,伺服器a告訴了伺服器b由伺服器b返回了乙個資料,瀏覽器校驗到兩個url不同就會這樣 200卻報錯 如何引起的呢?1這個請求是xhr請求 2這個請求跨域了 怎樣會跨域?埠...