Javascript:
$.ajax({
url : 'http://127.0.0.1:8080/demo/jsonpServlet',
data: { ... },
dataType : "jsonp",
jsonpCallback: "jsonpCallback1",
success: function(data) {
alert(data.name);
}
});
Java Servlet:
PrintWriter out = response.getWriter();
String result = "jsonpCallback1({\"name\":\"zhangsan\"})";
System.out.println(result);
out.print( result );
out.flush();
out.close();
需要注意的是,java 返回值必须是 fnName(value) 格式,其中 fnName 必须与 ajax 中的 jsonpCallback 值一致;() 中的 value 可以是基本数据类型数值或数组,其他复杂数据类型需要使用 json 传递。
常见的报错问题,如:
SyntaxError: missing ; before statement
ajax 不进入 success 方法
大多数情况下都是由于 ajax 没有加 jsonpCallback:'fnName' 及 java 返回数据没有加 fnName() 引起
End .