Cet article décrit la fonction d'échappement en résolvant le problème du code brouillé en Ajax en js., Et il est partagé avec vous pour votre référence. Les méthodes spécifiques sont les suivantes:
1. Description du problème:
À l'origine, l'Escape () dans la page Web Effets spéciaux URL codé en chinois selon le jeu de caractères ISO-8859-1. De cette façon, les paramètres de demande peuvent être directement obtenus via request.getParameter (), mais plus tard JavaScript a remplacé Escape () par un codage du jeu de caractères Unicode. De cette façon, les paramètres de demande ne peuvent pas être obtenus directement dans le didacticiel et servlet JSP, et je ne connais pas la raison spécifique.
2. Solution:
1. Premièrement, encoder les caractères chinois deux fois. Si vous souhaitez passer le nom du paramètre et que la valeur est "bonjour", le format de l'URL est .... name = Escape (Escape ("Hello")). De cette façon, les paramètres codés peuvent être obtenus dans request.getParameter ().
2. Étant donné que les paramètres obtenus se trouvent sous le format de% 25U4F60% 25U597D, il est impossible d'utiliser le UrlDeccoder régulier.decode () pour décoder. Heureusement, il y a suffisamment de gens dans ce monde. J'ai directement trouvé une classe d'outils sur Internet qui peut implémenter Escape () et unEscape () - Codec de style en JavaScript.
Copiez le code comme suit: <Script Language = "JavaScript">
function get (id) {return document.getElementById (id) .Value}
Paramètre de fonction ()
{
var xmlhttp;
if (window.activexobject)
{
xmlhttp = new activeXObject ("Microsoft.xmlhttp")
}autre{
xmlhttp = new xmlHttpRequest ();
}
xmlhttp.onreadystatechange = function ()
{
if (xmlhttp.readystate == 4)
{
if (xmlhttp.status == 200)
{
alerte ("Success!")
}autre{
alerte (xmlhttp.status)
}
}
}
var url = "Action.asp Tutorial? Action = Setting & rnd =" + math.random ()
xmlhttp.open ("post", URL, true)
var SendDate = "title =" + Escape (get ("title")) + "& conn_way =" + Escape (get ("Conn_way")) + "& databasename =" + Escape (get ("databasename")) + "& sqLuserName =" + Escape (get ("sqLusername")) + "& sqlpassword =" + escamot ape (get ("sqlpassword")) + "& sqllLocalName =" + Escape (get ("sqllLocalName")) + "& pg_size =" + Escape (get ("pg_size")) + "& adminid =" + escape (get ("adminid")) + "& administration
2727 xmlhttp.setRequestHeader («Content-Type», «Application / X-Www-Form-Urlencoded»);
xmlhttp.send (sendDate)
}
</cript>
Dans l'exemple ci-dessus, nous utilisons uniquement la fonction d'échappement en chinois, et la syntaxe est la suivante:
Définition et utilisation:
La fonction Escape () code une chaîne afin que la chaîne puisse être lue sur tous les ordinateurs.
grammaire:
Description du paramètre Escape (String)
chaîne requise. La chaîne à échapper ou encodée.
Valeur de retour:
Une copie de la chaîne codée. Certains de ces personnages sont remplacés par des séquences d'échappement hexadécimales.
illustrer:
Cette méthode n'encode pas les lettres et les nombres ASCII, ni ne codent les marques de ponctuation ASCII suivantes: - _. ! ~ * '(). Tous les autres caractères seront remplacés par des séquences échappées.
Conseils et commentaires:
Astuce: UnEscape () peut être utilisé pour décoder les chaînes codées Escape ().
Remarque: Ecmascript V3 s'oppose à l'utilisation de cette méthode, et l'application utilise decodeuri () et decodeuriComponent () au lieu de cela
J'espère que cet article sera utile à la programmation JavaScript de tous.