1. 程式人生 > >解決跨域的jsonp+Java例項

解決跨域的jsonp+Java例項

      @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;
}