前端发送http请求给后端的解决方案

来源:互联网 发布:网络舆情分析师报名 编辑:程序博客网 时间:2024/06/05 11:36

方案一:

<form action="/cgi-bin/post-query/a.html" method="POST" id="from1">          密码: <input type="text" name="密码" id="pwid">          <input type="button" value="确定"  onclick="checkpwd()"></form><script><!-- javascript 命令 -->function checkpwd(){   var pwid=document.getElementById("pwid"),//得到密码框        from1 = document.getElementById("from1");//得到需要提交的表单                   if( pwid.value==888 ){ //如果密码正确            from1.submit();//提交表单       }else{             alert(对不起,密码错,请重新输入!);       } </script>

方案二:

<a href=”javascript:;” onclick=”javascript:post(‘/dosomething’, {id:1,name:Jack’})”>test</a>

锦囊一 - IE发送中文变乱码

这篇文章说的很清楚,值得一看。

不同的操作系统、不同的浏览器、不同的网页字符集,将导致完全不同的编码结果。如果程序员要把每一种结果都考虑进去,是不是太恐怖了?有没有办法,能够保证客户端只用一种编码方法向服务器发出请求?

回答是有的,就是使用Javascript先对URL编码,然后再向服务器提交,不要给浏览器插手的机会。因为Javascript的输出总是一致的,所以就保证了服务器得到的数据是格式统一的。

Javascript编码的函数,一共有三个

编码/解码 功能 例子 escape()
unescape() 此方法已经被废弃了.
返回一个字符的Unicode编码值.

对网址中的除了”/”“@”“+”以外的保留字符编码 <script type="text/javascript">
  document.write(escape(",/?:@&=+$#中文"))
</script>
输出:
%2C/%3F%3A@%26%3D+%24%23%u4E2D%u6587 encodeURI()
decodeURI() 对整个URL进行编码. 编码后,它输出符号的utf-8形式,并且在每个字节前加上%

对网址中的保留符号不进行编码 <script type="text/javascript">
  document.write(encodeURI(",/?:@&=+$#中文"))
</script>
输出:
,/?:@&=+$#%E4%B8%AD%E6%96%87 encodeURIComponent()
decodeURIComponent() 对部分URL进行编码. 编码后,它输出符号的utf-8形式,并且在每个字节前加上%

对网址中的保留符号编码 <script type="text/javascript">
  document.write(encodeURIComponent(",/?:@&=+$#中文"))
</script>
输出:
%2C%2F%3F%3A%40%26%3D%2B%24%23%E4%B8%AD%E6%96%87
0 1
原创粉丝点击