我的問題如下。我有一個XHTML 1.1頁面,它具有表單和輸入字段。其中一個輸入字段包含一個URI值。此URI包含鍵符值對,其中帶&號(&)作爲參數分隔符,它將作爲GET請求由另一個Web應用程序在瀏覽器中傳遞。How-to XHTML 1.1驗證一個&符號而不逃避它?
通常我會用實體&
創建與號驗證碼爲XHTML 1.1。我的問題在於應用程序沒有收到GET請求,因爲(如預期的)瀏覽器不知道如何處理URI中的&
。
所以我的問題是如何在不使用HTML實體的情況下編寫&符號,因此瀏覽器仍然將其識別爲參數分隔符,並且GET請求正確傳遞給了Web應用程序。
我試過十六進制(%26)編碼符號,但瀏覽器仍然沒有「翻譯」它回到適當的&字符。
一個相關的問題,但它並沒有提供確切答案的問題我問:
XHTML and & (Ampersand) encoding
「(如預期)的瀏覽器不知道如何處理''&在URI」 - 這是** **未如預期,你除非您已對其進行雙重編碼,否則不應在地址欄中看到「&」。 –
請重新閱讀問題。 &符是輸入值字段中包含的URI的一部分。表單提交後,用戶將被返回到同一位置,完全按照其寫入。這意味着要麼我將「&」符號保留爲未編碼但未通過驗證,要麼將其編碼爲瀏覽器將在地址欄中收到HTML實體並且未能將查詢字符串傳遞給進程中的下一個應用程序的問題。 –
將HTML轉換爲DOM時,瀏覽器應將'&'解碼爲'&'。它應該在構造URL或x-url-form編碼數據時將'&'編碼爲'%26'。如果它不起作用,那麼我懷疑你是在服務器上錯誤地處理數據。 – Quentin