The escape function solves the problem of garbled ajax transfer in js
- 2020-03-30 04:13:06
- OfStack
This article illustrates the escape function to solve the problem of ajax transfer in js. Specific methods are as follows:
I. problem description:
Originally, escape() in web effects was url encoded according to iso-8859-1 character set in Chinese, so the request parameters could be directly obtained through request-getparameter (), but later javascript changed the escape() to unicode character set coding, so that the request parameters could not be directly obtained in JSP tutorials and servlets, for reasons I do not know.
Ii. Solutions:
1. First, escape() is encoded for Chinese characters twice. If the parameter name is to be passed and the value is "hello", then the format of the url is... Name =escape(escape(" hello ")) so that you can get the encoded parameter in requeste.getparameter ().
2. Since the parameter is & PI; % 25 u4f60%25 u597d There is no way to use the regular urldecoder.decode() to decode. Fortunately, there are enough people in the world to find a tool class directly on the Internet that can implement javascript escape() and unescape() codec
<script language="javascript">
function get(id){return document.getelementbyid(id).value}
function setting()
{
var xmlhttp;
if(window.activexobject)
{
xmlhttp=new activexobject("microsoft.xmlhttp")
}else{
xmlhttp=new xmlhttprequest();
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readystate==4)
{
if(xmlhttp.status==200)
{
alert(" Success! ")
}else{
alert(xmlhttp.status)
}
}
}
var url="action.asp The 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="+escape(get("sqlpassword"))+"&sqllocalname="+escape(get("sqllocalname"))+"&pg_size="+escape(get("pg_size"))+"&adminid="+escape(get("adminid"))+"&adminpwd="+escape(get("adminpwd"));
2727 xmlhttp.setrequestheader('content-type','application/x-www-form-urlencoded');
xmlhttp.send(senddate)
}
</script>
In the above example, we only use the escape function in Chinese, and the syntax is as follows:
Definition and usage:
The escape() function encodes the string so that it can be read on all computers.
Grammar:
Escape (string) parameter description
The string must be. A string to be escaped or encoded.
The return value:
A copy of the encoded string. Some of these characters are replaced with hexadecimal escape sequences.
Description:
This method does not encode ASCII letters and Numbers, nor the following ASCII punctuation: - _.! ~ * '(). All other characters are replaced by escape sequences.
Hints and notes:
Tip: escape() encoded strings can be decoded using unescape().
Note: ecmascript v3 opposes the use of this method, instead using decodeuri() and decodeuricomponent()