$.post()的dataType类型参数与Javascript的eval()函数

来源:互联网 发布:淘宝家具店网页模板 编辑:程序博客网 时间:2024/06/05 01:06

jQuery.post()看起来是不是挺怪啊,其实不就是$.post()嘛,哈哈哈。

众所周知,$.post非常好用也非常常用,它的四大参数也是赫赫有名,如下:

$.post(url,data,function,dataType);

OK,前三个参数比价简单,分别是url:请求抛给的地址;data:请求携带的参数;function请求执行成功后回调的函数;

第四个其实也挺重要的,就是服务器响应的数据类型,一般指的是xml、json。需要注意的是啥捏,如果这个参数你不指定(当然data、function、dataType都是可选参数,都可以不指定),服务器返回的数据,会默认的是字符串格式哦。

所以如果指定了是json格式的话,我们对返回的数据就可以执行进行对象化的操作,如果没指定的话,就需要先用eval()函数转换为对象再进行操作了。

举个栗子如下,这是个登录的例子,$.post()没有使用dataType参数,所以针对返回的function(data){}中的data其实是个字符串,需要var result=eval(‘(‘+data+’)’);进行转换。如果添加上参数dataType为json类型,那就直接var result=data或者直接对data进行操作即可。

PS:注意后端返回的数据为:out.print(“{\”success\”:false}”);

    <script type="text/javascript">        function login(){            var userId=$("#userId").val();            var userPassword=$("#userPassword").val();            if(userId===""||userPassword===""){                $.messager.alert('提示','员工编号及密码不能为空!','info');                return false;            }            $.post("/BankStatistics/LoginServlet?ran='+Math.random()",                {userId:userId,userPassword:userPassword},                function(data){                    var result = eval('('+data+')');                    if (result.success===true){                        window.location.href="main.jsp";                        return true;                    }                    else{                        $.messager.alert('提示','员工号或密码有误,请核准!','info');                        return false;                    }                }//function(data)            );//$.post        }//login()    </script>

OVER!

0 0