zhangzijiez
2018-03-09 13:09
采纳率: 38.5%
浏览 1.1k

ajax 不走success函数 请教大神

 mapper:
<select id="getDate" resultType="org.his.beans.OutBound">
    select distinct ny from OutBound order by ny desc
</select>
 controller:
@RequestMapping("/main")
    @ResponseBody
    public ModelAndView main(HttpServletResponse response, ModelAndView mv, HttpServletRequest request) {
        try {
            List<OutBound> list = service.getDate();
            JSONArray jsonArray = JSONArray.fromObject(list);
            mv.addObject("jsonArray",jsonArray);
            System.out.println(jsonArray);
            return mv;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
 jsp:
    <script type="text/javascript">
    $(document).ready(
            function() {
                $.ajax({
                    type : "POST",
                    url : "main",
                    dataType : "json",
                    success : function(data) {
                        alert(data);
                        for (var i = 0; i < data.length; i++) {
                            $("#ny").append(
                                    "<option>" + data[i].NY + "</option>");
                        }
                    }
                });
            });
</script>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • 小明同学YYDS 2018-03-10 05:35
    已采纳

    建议解决思路:
    1.首先查看controller是否编写正确,即直接在地址栏上输入url看是否进入controller对应的方法,然后是否有返回值
    2.第一步没问题,那么就是ajax请求的问题:第一,查看请求方式是否正确包括:url,参数形式;第二,返回值处理方式是否正确:先看是否接收到返回值。

    那么从你贴出的代码来看,貌似url有点问题,你可以测试下.
    希望对你的问题有所帮助

    点赞 打赏 评论
  • Dawn_WL 2018-03-09 14:10

    因为你返回的数据它处理不成json,怎么成功

    点赞 打赏 评论
  • 缘来一场梦 2018-03-09 16:19

    用text类型吧,在complete里看看是否成功返回了

    点赞 打赏 评论
  • 踮脚敲代码 2018-03-10 03:27

    有没有成功请求了控制器

    点赞 打赏 评论
  • csdn_fanwei 2018-03-10 05:34

    加了@ResponseBody后,直接返回list就可以,框架会帮你转json

    点赞 打赏 评论
  • 松海阵阵 2018-03-10 06:11

    建议:
    检查ajax调用的方法是否正确,不同的Jquery调用的方法不一样,后台的Json字符串封装也是不一样的,最新的版本的直接返回string类型的Json字符串就可以,但老的版本返回的是JsonResult类型的才识别

    点赞 打赏 评论
  • zyydomain 2018-03-10 08:15

    配置了responseBoby你直接返回list就可以了

    点赞 打赏 评论
  • zhangzijiez 2018-03-10 11:40
      controller:
    @RequestMapping("/main")
        @ResponseBody
        public ModelAndView main(HttpServletResponse response, ModelAndView mv, HttpServletRequest request) {
            try {     
                return service.getDate();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
     <script type="text/javascript">
        $(document).ready(function() {
            $.ajax({
                type : "POST",
                url : "main",
                dataType : "json",
                success : function(data) {
                    var b = "<option>请选择</option>";
                    for ( var i = 1; i < data.length; i++) {
                        b += "<option value='"+data[i]+"'>" + data[i] + "</option>";
                        alert(b);
                        $("#ny").html(b);
                    }
                }
            });
        });
    

    图片说明

    修改之后可以进success了 下面循环alert()弹出的数据都是object,界面显示不了要什么处理呢

    点赞 打赏 评论

相关推荐 更多相似问题