JAVA後臺重定向頁面並且跨域傳遞資料給前端
阿新 • • 發佈:2020-12-17
註明:
本文為學習記錄筆記,不喜勿噴。有問題請留言。
業務場景:A連結點選後,後臺重定向到B頁面,並且要給B頁面傳遞資料,A和B頁面域名埠等都不相同
實現思路:
- 拼接到B頁面的url後面,B頁面載入的時候從url上面擷取指定欄位,缺點為:資料太長的時候將導致url非常長並且對B頁面的業務程式碼侵入性比較高
- 後端通過C頁面進行跳轉到B頁面並且寫入資料到瀏覽器的window.name(這個欄位對於視窗來講是可見的,只要視窗沒有關閉隨便你頁面來回跳轉,值都會存在)中
頁面C程式碼如下:
<!DOCTYPE html> <html lang="en"> <script th:inline="javascript"> window.name=[[${passData}]]; window.location.href=[[${redirectUrl}]] </script> </html>
後端程式碼:
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import javax.servlet.http.HttpServletRequest; /** * @author : HolidayLee * @description : 測試跨域傳遞資料並跳轉頁面 */ @Controller public class RedirectTestController { @RequestMapping(value = "/{key}", method = RequestMethod.GET) public String redirectByKey(HttpServletRequest request) { String data = "passed-data"; String url = "https://www.baidu.com/"; request.setAttribute("passData", data); request.setAttribute("redirectUrl", url); return "/redirect/302"; } }
檢視效果:谷歌瀏覽器開發者工具執行js語句