JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。一个是描述信息的格式,一个是信息传递双方约定的方法。(数据交互双方约定一个自己的数据传输密钥,自定义密钥callback,传输方和接受方共同遵守这个协议)
js中请求是这样的:
proxy: {
type: 'jsonp',
url : url,
actionMethods: {
create : 'GET',
read : 'GET',
update : 'GET',
destroy: 'GET'
},
extraParams: config.params,
reader: {
type: 'json',
rootProperty: config.root,
totalProperty: config.totalProperty
}
},
java代码是:
response.setContentType("text/plain");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
String cb=request.getParameter("callback");
PrintWriter out=response.getWriter();
out.println(cb+"("+JSONObject.fromObject(message).toString()+")");
out.flush();
out.close();