通过jsonp实现跨域

来源:互联网 发布:病毒 知乎 编辑:程序博客网 时间:2024/05/28 14:57

1.通过jsonp的方式实现

functionidcheck(){

var requestUrl = “http://192.168.1.130:8084/solution/getJsonp“;

  $.ajax({           url:requestUrl,           type: "get",           async: false,           data: { name: 'test',testphone:'123122131'},          dataType: "jsonp",           jsonp: "callbackparam", //服务端用于接收callback调用的function名的参数            jsonpCallback: "success_jsonpCallback", //callback的function名称,服务端会把名称和data一起传递回来            success: function(json) {            /*alert(json);*/          /*var criterionitem = jQuery.parseJSON(json.responseText);*/         var con = json;          console.log(json);          /*console.log(con.contacter);          console.log(con.contacterPhone);*/          },           error: function(){alert('Error');}    });

}

后台springmvc Controller

1.将返回值写入到response中
@RequestMapping(“/get”)
@ResponseBody
public void get(HttpServletRequest req,HttpServletResponse res) {
res.setContentType(“text/plain”);
String callbackFunName =req.getParameter(“callbackparam”);//得到js函数名称
try {
res.getWriter().write(callbackFunName + “([ { name:\”John\”}])”); //返回jsonp数据
} catch (IOException e) {
e.printStackTrace();
}
}

2.将返回值设置成json对象返回 @RequestMapping("/getJsonp")  @ResponseBody  public JSONPObject getJsonp(String callbackparam,String name,String phone) throws AppBusinessException{     Company company=new Company();    company.setContacter("nsns");    company.setContacterPhone("121211311");    Solution solution = new Solution();  return new JSONPObject(callbackparam, solutionBiz.selectSolutionByPage(solution));   }
0 0
原创粉丝点击