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>

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

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

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

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

有没有成功请求了控制器

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

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

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

  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,界面显示不了要什么处理呢