• ajax使用时碰到的一些坑


    2021/02/20

    1、ajax向后台传递参数为null

    今天在使用ajax传参时碰到了后台接收参数为null的问题,ajax格式如下

    $.ajax({
                type: "POST",
                url: "/displayitem",
                data: {
                    "number":number
                },
                traditional:false,
                dataType: "json",
                success:function (data) {//成功后返回的数据
                    console.log(data);
                },
                error:function (data) {//失败后返回的数据
                    console.log(data);
                }
            });
    View Code

    后台接收函数如下

    @RequestMapping("/displayitem")
    @ResponseBody
    public String DisplayItem(String data){
         System.out.println(data);
         if (Integer.parseInt(data) == 1){
             return "是1是1";
         }else {
             return "不是1不是1";
         }
    }
    View Code

    然后就发生了data一直为空的问题。仔细检查后发现,ajax传参用的参数名是number,而我后台接收的参数名称是data,名字不相同就无法自动匹配了,所以解决方案是要么写成 public String DisplayItem(@RequestParam("number") String data) ,要么就写成 public String DisplayItem(String number)

    这个问题开始很基础的,只要再多细心一点就可以避免了。

    -----------------------------------------------------------------------------------------------------------

    2、ajax接收后台传回的json数据打印为undefined

    在后台,我使用的是阿里的fastjson进行json数据打包,打包完成后的数据的确是json格式,传回前端的同样是json格式,但在 $.each(data,function (index,element) 中使用,却无论如何也无法输出正常数据,经过大量查询网上资料、多次试错后,我发现问题很有可能出在json对象和json字符串之间的转换,我修改了后端的json打包方式,原本的打包方式是

    String jsonStr = JSON.toJSONString(itemInformation);
    jsonArray.add(jsonStr);

    这样是将一个json字符串放入了json数组中,修改后的打包方式为

    JSONObject jsonObject = (JSONObject)JSONObject.toJSON(itemInformation);
    jsonArray.add(jsonObject);

    这样直接将一个json对象放入json数组中,果然,传递后的data可以正常地显示了。

    ==========================================================================================================

  • 相关阅读:
    Squid代理上网服务
    设置PyCharm创建py文件时自动添加头内容
    kubernetes容器集群管理启动一个测试示例
    kubernetes容器集群管理部署node节点组件
    kubernetes容器集群管理部署master节点组件
    kubernetes容器集群管理创建node节点kubeconfig文件
    kubernetes容器集群部署Flannel网络
    kubernetes容器集群部署Etcd集群
    kubernetes容器集群自签TLS证书
    kubernetes(k8s)容器集群管理
  • 原文地址:https://www.cnblogs.com/YXSZ/p/14414669.html
Copyright © 2020-2023  润新知