1. 程式人生 > 其它 >JAVA後臺重定向頁面並且跨域傳遞資料給前端

JAVA後臺重定向頁面並且跨域傳遞資料給前端

技術標籤:後臺重定向並傳輸局javavuehtml

註明:

本文為學習記錄筆記,不喜勿噴。有問題請留言。

業務場景:A連結點選後,後臺重定向到B頁面,並且要給B頁面傳遞資料,A和B頁面域名埠等都不相同

實現思路:

  1. 拼接到B頁面的url後面,B頁面載入的時候從url上面擷取指定欄位,缺點為:資料太長的時候將導致url非常長並且對B頁面的業務程式碼侵入性比較高
  2. 後端通過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語句