Mr_li13
黯雅悸动
采纳率100%
2016-05-30 03:05 浏览 6.8k
已采纳

Ajax怎么访问springmvc后台方法,并返回数据

1

前台Ajax:
图片说明

后台方法:
@RequestMapping(value="/course/result.action")
public @ResponseBody String result(String name,HttpServletRequest request,HttpServletResponse response){
System.out.println(request.getParameter("name"));
System.out.println("11111");
return "";
}

最后成功走了success方法,但是在后台方法中根本就没有走,但是的确请求路径正确的,但是没有走方法,各位大神解答解答
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答 默认 最新

  • 已采纳
    Mr_li13 黯雅悸动 2016-05-30 08:30

    以上的各位:
    问题是解决了,我把解决的代码发上来,但是出现了一个新问题,传回前台的值变成全是????乱码,如何解决,我使用各种方法都不行,包括编码都设置了。

    传值问题解决后的代码:

     $.ajax({
                        type:"POST",
                        url:"course/result.action",
                        dataType:"text",
                        data:{name:cname},
                        success:function(data){
                            if(data=="ok"){
                                alert("不存在,可使用:"+data);
                                flag=true;
                            }else{
                                alert("存在,不可使用:"+data);
                                flag=false;
                            }
                        },
                        error:function(){
                                alert("方法执行不成功!");
                            }  
    

    后台代码:

     @ResponseBody
        @RequestMapping(value="/course/result.action", method=RequestMethod.POST,produces="text/plain;charset=UTF-8")
        public String result(String name,HttpServletResponse response){
            System.out.println("Ajax获取值:"+name);
            System.out.println("11111");
            int result = this.service.findCourseName(name);
            response.setContentType("application/json;charset=UTF-8");
            /*response.setCharacterEncoding("UTF-8");*/
            System.out.println("查询条目数:"+result);
            if(result==1){
                return "error"+name;
            }
            return "ok"+name;
        }
    
    点赞 1 评论 复制链接分享
  • tanggddeng1007 果冻菌 2016-05-30 03:12

    1、为什么要加!result
    2、在类上加/course,方法上加/result.action图片说明
    用spring+ajax可以像我这么写,不一定要先传controller层

    点赞 评论 复制链接分享
  • cdcainiao 来看看 2016-05-30 03:15

    参考下这个吧
    $.ajax({

    type:'get',

    url:"/user/isUserExits.do",

    data:{"regionId":regionId,"loginName":loginName},

    cache:false,

    dataType:'json',

    success:function(data){

    var obj = eval(data);
    if(obj.result == true){
    return false;
    }

                 }  
             });
    

    后台方法参考下这个格式

    /***
     * 检查用户是否存在
     */
    @ResponseBody
    @RequestMapping("/winshare/user/isUserExits")
    public String isUserExist() throws Exception{
        String regionId =WebContext.getRequest().getParameter("regionId");
        String loginName =WebContext.getRequest().getParameter("loginName");
        boolean isExits = false;
        JSONObject json = new JSONObject();
        json.put("result", isExits);
        return json.toString();
    }
    
    点赞 评论 复制链接分享
  • dy987987 战z11 2016-05-30 03:26

    你可能是缺了这段代码。。
    /**
    * 向浏览器写入JSON字符串
    * @param json
    * @param response
    */
    try {
    response.setContentType("application/json;charset=UTF-8");

            response.getWriter().print(result.toJSONString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
    点赞 评论 复制链接分享
  • Royal_lr Royal_lr 2016-05-30 05:16

    你的!result这个是struts的写法,,把这个去掉就好了,,

    点赞 评论 复制链接分享

相关推荐