首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

前端跨頁面傳參:AJAX GET 請求下的參數獲取方案

     編輯:程式設計綜合問答

頁面 A 以 jQuery $.get() 向頁面 B 發送請求,參數不會出現在網址列(?xxx=yyy),因此頁面 B 無法用 location.search 取得。這是因為 兩個頁面屬於獨立的瀏覽器上下文,AJAX 回應資料僅存在於發起請求的頁面(頁面 A)的 JavaScript 環境中。

可行方案

方案一:URL 參數傳遞(最簡單)

頁面 A 跳轉而非 AJAX:location.href = 'B.html?param=value',頁面 B 用 new URLSearchParams(location.search).get('param') 取值。

方案二:LocalStorage / SessionStorage(HTML5)

// 頁面 A 寫入
localStorage.setItem('sharedParam', JSON.stringify({id: 1, name: 'test'}));
// 頁面 B 讀取
const data = JSON.parse(localStorage.getItem('sharedParam'));

可監聽 storage 事件實現即時同步。

方案三:Cookie

設定 domain 與 path 使雙方可讀,適合少量資料。

方案四:共用 Web Worker / Broadcast Channel API

同源分頁間可透過 BroadcastChannel 傳遞訊息:

// 頁面 A
const ch = new BroadcastChannel('my_channel');
ch.postMessage({type: 'param', value: 123});
// 頁面 B
new BroadcastChannel('my_channel').onmessage = e => console.log(e.data);

選型建議

  • 單次跳轉、資料量小 → URL 參數。
  • 多頁面共享狀態、資料量中等 → LocalStorage。
  • 即時雙向通訊 → Broadcast Channel / WebSocket。

理解瀏覽器分頁隔離機制,才能選對跨頁傳參方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved