Domanda

Ho un piccolo problema: sto scrivendo per rispondere al contenuto del file e lo restituisco al client come risposta AJAX.
Ma si verifica una sostituzione HTML: di > a > eccetera...
Cosa devo fare per eliminare questa sostituzione?

res.setHeader( "Cache-Control", "must-revalidate, post-check=0, pre-check=0" );
res.setHeader( "Pragma", "public" );
res.setContentType( "text/html" );

Tia

aggiornare

//    import com.ibm.useful.http.PostData;
        PostData pd = new PostData( req );
        final FileData data;

    try {
        data = pd.getFileData( "sqlFile" );

    ByteArrayOutputStream buf = new ByteArrayOutputStream();
    for ( byte b : data.getByteData() ) {
       buf.write( b );
    }
    res.getWriter().print( buf.toString() );
}

ho guardato buf.toString() attraverso il debugger. Va bene lì. La sostituzione va oltre. ma dove...

È stato utile?

Soluzione

I personaggi speciali HTML sono stati sfuggiti Entità HTML.

Se sei sicuro Che questo è successo subito dopo averlo scritto alla risposta e proprio prima che i dati di risposta arrivino al cliente, allora c'è forse un filtro nella catena che è sfuggito alle entità HTML per qualche motivo. Controlla i filtri dichiarati in web.xml e regola il url-pattern se necessario.

Altri suggerimenti

Questo di solito accade quando i caratteri HTML (

<, > , "

Tra gli altri) vengono sfuggiti. Prova a impostare la fuga in falso o simile. Impossibile trovare la documentazione API per "com.ibm.useful.http.postdata"

Prova a usare sotto lo snippet:

res.setContentType("text/html; charset=UTF-8");

Assicurati che il database sia impostato anche su codifica UTF-8, se ne usi uno.

Se questo non si risolve, leggi questo articolo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top