開發人員常使用 window.location.href 進行頁面跳轉並攜帶查詢參數。然而,有用戶反映在 Google Chrome 中該方式失效,卻在 Internet Explorer 中正常運作。這通常是因為 URL 字串中存在非法字符或拼寫錯誤導致 Chrome 的嚴格解析機制攔截了請求。
encodeURIComponent 編碼,導致 URL 格式不合法。檢查代碼中構建 URL 的邏輯,確保參數正確編碼且無多餘字符。最佳回答指出:「你 多寫了一個吧。」暗示代碼中存在多餘的引號、分號或其他標點。建議採用以下最佳實踐:
// 推薦寫法:使用 encodeURIComponent 編碼參數
var params = '?id=' + encodeURIComponent(id) + '&name=' + encodeURIComponent(name);
window.location.href = '/target-page' + params;
在 Chrome 開發者工具的 Console 中直接輸入構建好的 URL 字串,觀察是否能正常跳轉;或使用 console.log 輸出最終 URL,肉眼檢查異常字符。
Chrome 對 URL 格式要求較嚴,開發時務必對動態參數進行編碼,並仔細核對字串拼接邏輯,避免因「多寫一個字符」導致功能失效。