當我請求包含#號的jquery Ajax的url時,#後面的url字符串被截斷。例如:當它包含#在jQuery ajax請求時的URL打破
http://somesitem.com/?name=Some#thing
當我看到被要求在Firebug這個網址,我看到所有正在提交是:
http://somesitem.com/?name=Some
我試圖用encodeURI函數沒有成功。
有關如何提交包含#的整個字符串的任何提示?
當我請求包含#號的jquery Ajax的url時,#後面的url字符串被截斷。例如:當它包含#在jQuery ajax請求時的URL打破
http://somesitem.com/?name=Some#thing
當我看到被要求在Firebug這個網址,我看到所有正在提交是:
http://somesitem.com/?name=Some
我試圖用encodeURI函數沒有成功。
有關如何提交包含#的整個字符串的任何提示?
這可能是因爲#
這個字符有特殊的含義。它基本上是一個保留字符。我可能只是建議你使用一個不同的角色來爲你使用它。
encodeURI不刪除「#」。你需要使用encodeURIComponent方法
encodeURIComponent('Some#thing')
這應該產生這樣的:
Some%23thing
嘗試用 '%23' 代替 '#'。 。
片段標識符永遠不會傳遞給服務器。如果你想將它發送到服務器,你需要首先將現有片段轉換爲標準的url參數。
var url = window.location;
//url = http://somesitem.com/?name=Some
url += '&hash='+window.location.hash;
//url = http://somesitem.com/?name=Some&hash=thing
$.get(url);
的片段標識符的功能比 URI的其餘部分是不同的:即,其處理是排他的客戶端,沒有從服務器 參與 - 當然的服務器通常有助於 確定MIME類型和MIME類型決定了片段的處理。 當代理(如Web瀏覽器) 向Web服務器請求資源時,代理將URI發送到 服務器,但不發送片段。相反,代理等待 服務器發送的資源,然後,代理處理 資源根據文檔類型和片段值
沒有其他解決方案的工作。這工作。謝謝。 – avijendr