先上代码
@RequestMapping("/hello")
public String hello(HttpServletRequest request) {
return JSON.toJSONString("hello");
}
这是后台代码,通过http://localhost:8080/hello来访问
handleClick(){
$.ajax({
type:"get",
url:"http://localhost:8080/hello",
dataType:"jsonp",
success:function(res){
console.log(res);
},
error:function(res){
console.log("fail");
}
})
console.log("over");
}
这是ajax的请求部分,本来也就几行代码的事,弄了好久,不知道为什么状态码已经是200了,还是进了error方法。
直到看了这位朋友使用jsonp跨域访问请求为200,但进入error方法的文,终于把问题解决了,原因是 后台返回时没有带上callback方法名。
@RequestMapping("/hello")
public String hello(HttpServletRequest request) {
String callbackFuncation = request.getParameter("callback");
System.out.println(callbackFuncation);
return callbackFuncation + "(" + JSON.toJSONString("hello") + ")";
}
改成这样,顺利解决了。