您的位置:首页 > 理论基础 > 计算机网络

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

2016-07-01 13:50 519 查看
方案一:

<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: