解決跨域的jsonp+Java例項
阿新 • • 發佈:2018-12-22
@Action(value = "demoPage1", results = @Result(type = "json", params = {
"root", "result" }))
public String getPage1Data() {
Map<String,String> map = new HashMap<String,String>();
map.put("result", "content");
JSONObject resultJSON = JSONObject.fromObject(map);
HttpServletResponse response=ServletActionContext.getResponse();
HttpServletRequest resquest=ServletActionContext.getRequest();
response.setContentType("text/plain");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Access-Control-Allow-Origin", "*");//新增跨域訪問
response.setDateHeader("Expires", 0);
//String callback= request.getParameter("callback");//如果你在請求後面添加了callback,可以用自己傳入的引數,沒有新增則預設為callback,這裡我使用預設
try {
PrintWriter out = response.getWriter();
out.println("callback"+"("+resultJSON.toString(1,1)+")");//返回jsonp格式資料 ,要用callback包裝下
out.flush();
out.close();
System.out.print("1");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
e.getMessage();
}
return null;
}
"root", "result" }))
public String getPage1Data() {
Map<String,String> map = new HashMap<String,String>();
map.put("result", "content");
JSONObject resultJSON = JSONObject.fromObject(map);
HttpServletResponse response=ServletActionContext.getResponse();
HttpServletRequest resquest=ServletActionContext.getRequest();
response.setContentType("text/plain");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Access-Control-Allow-Origin", "*");//新增跨域訪問
response.setDateHeader("Expires", 0);
//String callback= request.getParameter("callback");//如果你在請求後面添加了callback,可以用自己傳入的引數,沒有新增則預設為callback,這裡我使用預設
try {
PrintWriter out = response.getWriter();
out.println("callback"+"("+resultJSON.toString(1,1)+")");//返回jsonp格式資料 ,要用callback包裝下
out.flush();
out.close();
System.out.print("1");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
e.getMessage();
}
return null;
}