Il mio problema è il seguente. Ho un XHTML 1.1 pagina che ha una forma e di input campi. Uno dei campi di input contiene un valore che è un URI. Questo URI contiene coppie di valori-chiave con commerciale (&) come separatore argomentazione, che verrà passato come una richiesta GET da un'altra applicazione web nel browser.How-to XHTML 1.1 convalida una e commerciale senza fuggirla?
Di solito vorrei utilizzare l'entità &
per creare gli e commerciali per convalidare il codice come XHTML 1.1. Il mio problema è che l'applicazione non riceve la richiesta GET, dal momento che (come previsto) il browser non capisce come gestire &
nella URI.
Quindi la mia domanda è davvero come scrivere una e commerciale senza utilizzare l'entità HTML, quindi il browser lo riconosce ancora come separatore di argomenti e la richiesta GET viene passata correttamente all'app web.
Ho provato Hex (% 26) per codificare la e commerciale, ma il browser non lo "traduce" di nuovo in un carattere corretto &.
Una questione collegata, ma non fornisce la risposta esatta alla domanda che mi chiedo:
XHTML and & (Ampersand) encoding
"(come previsto) il browser non capisce come gestire' '& nel URI" - che è ** non ** come previsto, è non dovrebbe vedere '&' nella barra degli indirizzi a meno che non sia stato codificato in doppia. –
Rileggi la domanda. Gli e commerciali sono parte di un URI contenuto nel campo del valore di un input. Dopo che il modulo è stato inviato, l'utente verrà riportato nella stessa posizione, esattamente come è scritto. Ciò significa che o lascio gli ampersands non codificati ma non riesco a convalidarli, oppure li codifico con il problema che il browser riceverà l'entità HTML nella barra degli indirizzi e non riuscirà a passare la stringa di query all'app successiva nel processo. –
Il browser dovrebbe decodificare '&' in '&' quando si converte l'HTML in un DOM. Dovrebbe quindi codificare '&' come '% 26' quando si costruisce l'URL o i dati codificati in forma x-url. Se non funziona, ho il sospetto che tu stia gestendo i dati in modo errato sul server. – Quentin