Este artigo descreve a função de fuga resolvendo o problema do código ilegal no Ajax no JS., E é compartilhado com você para sua referência. Os métodos específicos são os seguintes:
1. Descrição do problema:
Originalmente, o URL da Escape () na página da web codificada em chinês de acordo com o conjunto de caracteres ISO-8859-1. Dessa forma, os parâmetros de solicitação podem ser obtidos diretamente através do request.getParameter (), mas posteriormente o JavaScript substituiu escape () pela codificação do conjunto de caracteres Unicode. Dessa forma, os parâmetros de solicitação não podem ser obtidos diretamente no tutorial e no servlet JSP, e não conheço o motivo específico.
2. Solução:
1. Primeiro, codifique os caracteres chineses duas vezes. Se você deseja passar o nome do parâmetro e o valor é "olá", o formato do URL é .... nome = escape (escape ("hello")). Dessa maneira, os parâmetros codificados podem ser obtidos no request.getParameter ().
2. Como os parâmetros obtidos estão no formato de %25U4F60 %25U597D, é impossível usar o urldecoder regular.Decode () para decodificar. Felizmente, existem pessoas suficientes neste mundo. Encontrei diretamente uma classe de ferramentas na Internet que pode implementar o codec de escape () e unescape ()-em JavaScript.
Copie o código da seguinte forma: <Script Language = "JavaScript">
function get (id) {return document.getElementById (id) .Value}
Configuração da função ()
{
var xmlhttp;
if (window.activexObject)
{
xmlhttp = new ActiveXObject ("Microsoft.xmlHttp")
}outro{
xmlHttp = new XmlHttPrequest ();
}
xmlhttp.onreadyStatechange = function ()
{
if (xmlhttp.readyState == 4)
{
if (xmlhttp.status == 200)
{
Alerta ("Sucesso!")
}outro{
Alerta (xmlhttp.status)
}
}
}
var url = "Action.asp tutorial? Ação = Configuração & rnd ="+Math.random ()
xmlhttp.open ("post", url, verdadeiro)
var sendDate = "title ="+Escape (get ("title"))+"& conn_way ="+escape (get ("conn_way"))+"& databasename ="+escape (get ("databasename")+"& sqlondername ="+escape ("" sqLushername "))+" "sqlondername ="+escape ("" sqLusName.)) APE (get ("sqlpassword"))+"& sqlllocalname ="+escape (get ("sqlllocalname"))+"& pg_size ="+escape (get ("pg_size")+"& adminid ="+escape (get ("adminid"))+"
2727 xmlHttp.setRequestHeader ('Content-type', 'Application/x-www-form-urlencoded');
xmlhttp.send (sendDate)
}
</script>
No exemplo acima, usamos apenas a função de fuga em chinês, e a sintaxe é a seguinte:
Definição e uso:
A função Escape () codifica uma sequência para que a string possa ser lida em todos os computadores.
gramática:
Escape (string) Descrição do parâmetro
string necessária. A string a ser escapada ou codificada.
Valor de retorno:
Uma cópia da string codificada. Alguns desses personagens são substituídos por sequências de fuga hexadecimais.
ilustrar:
Este método não codifica letras e números ASCII, nem codifica as seguintes marcas de pontuação ASCII: - _. ! ~ * '(). Todos os outros caracteres serão substituídos por sequências escapadas.
Dicas e comentários:
Dica: UNESCAPE () pode ser usado para decodificar sequências codificadas Escape ().
NOTA: O ECMAScript V3 se opõe ao uso desse método, e o aplicativo usa decodeuri () e decodeuricomponent () em vez de
Espero que este artigo seja útil para a programação JavaScript de todos.