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

前台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个回答

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

传值问题解决后的代码:

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

参考下这个吧
$.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();
}

你可能是缺了这段代码。。
/**
* 向浏览器写入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();
    }

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问