AJAX返回数据类型是String类型解决办法

AJAX返回数据类型是String类型解决办法

今天编写ajax时候出现了success:function(rs)返回的参数无法调用

前端代码示例:

//验证id是否存在
function checkID(){
            var stuNo=$("input[name='stuNo']").val();
            $.ajax({
                url:"/Educational/student/check",
                data:{"stuNo":stuNo},
                type:"post",
                dataType:"JSON",
                success:function (rs){
                    if (rs.c==1){
                        alert("该学号已经存在,请重新填写");
                        $("input[name='stuNo']").val("");
                    }
                },
                error:function (){
                    alert("失败")
                }
            });
        }

后端代码:

@Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String stuNo=req.getParameter("stuNo");
        StudentService service = new StudentServiceImpl();
        //sql查询id,返回0/1表示存不存在
        int i = service.checkStuNo(stuNo);
        resp.setContentType("text/html;charset=utf-8");
        String str = "{'c':"+i+"}";
        PrintWriter writer = resp.getWriter();
        JSONObject jsonObject = JSONObject.fromObject(str);
        System.out.println(jsonObject);
        writer.print(jsonObject);
    }

出问题代码片段:

success:function (rs){
                    if (rs.c==1){}

检验问题 :
使用alert(rs)可以显示数据{“c”,1},但rs.c显示indefined,
使用alert(typeof(rs))显示为string

所以是返回数据类型出现问题,但已经定义 dataType:“JSON”,

解决办法:

success:function (rs){
                    var n = JSON.parse(rs)
                    if (n.c==1){}

添加一行代码转换数据类型为JSON格式

在另一个项目中完全不用这样的方式,返回的直接是JSON格式数据,所以存在疑惑,希望有大神解答。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值