• Super User

    [Ajax] Passare caratteri speciali in un URL

    Salve a tutti,
    sono in un progetto con ASP e Ajax.

    Dovrei passare in un URL dei caratteri speciali tipo è, à oppure l'apostrofo, riscontro due problemi:

    • se la mia stringa è del tipo (Si è verificato un problema) la chiamata AJAX questa viene tagliata a "Si "
    • se invece scrivo "Si e' verificato un problema" e nella chiamata ajax aggiunto encodeURIComponent della mia stringa" va in eccezione per presenza di caratteri potenzialmente pericolosi.

    Come posso risolvere?

    Grazie.


  • User Attivo

    Ipotizzo che tu stia passando dei parametri in GET. Potresti passarli in POST, scavalcando così il problema.


  • User Newbie

    Il problema dell'encoding di una pagina web è uno dei problemi che affligge quasi tutti gli sviluppatori.
    Visto che non so cosa stai facendo effettivamente posso consigliarti di verificare prima di tutto l'encoding utilizzato dalla pagina contenente lo script che utilizzi.
    Passando in post i parametri puoi evitare il troncamento dell'url ma non il problema dell'encoding.
    L'encodeURIComponent come lo hai utilizzato?
    Ossia l'hai utilizzato passandogli tutto l'url?
    Solitamente questa funzione deve essere utilizzata per encodare ogni singolo parametro prima di assemblare l'url completo.


  • Super User

    Confermo di utilizzare il metodo GET, al posto del POST, ma tutto il progetto era già stato 'configurato' così e ho preferisco non variarlo.

    Alla fine ho risolto con un escamotage fatto in casa: ho aggiunto un div fittizio al quale aggiungo il mio 'message' e in ricezione lo rimuovo!

    
    ... + $('<div />').html(message).text() + ...
    
    

    Così funziona.

    Magari non è la soluzione migliore, ma non mi ha dato problemi.