适用场景:跨域传值ajax端: $.ajax({ url:"XXXXX", dataType:'jsonp', data:{}, jsonp:'callbackparam', jsonp定义的callbackparam,会随机的向服务端发送一段字符串 'Jquery.....' 该字符串将作为返回值的函数名 success:function(result) { //do something } });
1 服务端(java): 2 /** 3 * 方法描述:展示所有商品 4 * 作 者:赵 鹏 5 */ 6 @GetMapping("showGoods") 7 @ResponseBody 8 public void showGoods(HttpServletResponse response, HttpServletRequest request) throws IOException { 9 10 //设置字符格式11 response.setHeader("Content-type", "text/html;charset=utf-8"); 12 13 Listgrounding = groundingService.showGoods();14 15 Gson gson = new Gson(); //也可以用 JSONObject / JSONArray 或者 FastJson 等json工具16 17 String json = gson.toJson(grounding);18 19 String parameter = request.getParameter("callbackparam"); //获得ajax传来的随机函数名20 21 System.out.println(parameter);22 23 response.getWriter().print(parameter + "(" + json + ")"); //并拼接到返回值中 在使用小括号将json数据拼接起来 24 25 //这样ajax端就会的到一个 我们自己 构造的一个 function 函数 最后在success中执行26 27 28 }
跨域的另一种解决思路:
// 处理跨域请求
response.setHeader("Access-Control-Allow-Origin", "*");