后台:
//jquery只能通过get方式传递数据
//根据html指定的jsonp回调函数的参数名,获取回调函数的名称
//callbackName的值其实就是:jsonpCallback
String callbackName = (String)request.getParameter("jsoncallback");
//简单模拟一个json字符串,实际可使用google的gson进行转换,次数通过字符串拼接
//{"name":"张三","age":28}
//\是对"号进行转义
String jsonStr = "{\"name\":\"张三\",\"age\":28}";
//最终返回的数据为:successjsonpCallback ({"name":"张三","age":28})
System.out.println("CallBackFunctionName"+callbackName);
String renderStr = callbackName+"("+jsonStr+")";
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write(renderStr);
前台:
$.ajax( {
type : "get", //jquey是不支持post方式跨域的
async : false,
url : "http://localhost:8080/Reg/servlet/RegisterUser", //跨域请求的URL
dataType : "jsonp",
//传递给请求处理程序,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonp : "jsoncallback",
//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
jsonpCallback : "successjsonpCallback",
//成功获取跨域服务器上的json数据后,会动态执行这个callback函数
success : function(json) {
$("#name").html(json.name);
$("#age").html(json.age);
}
});