jsonp 跨域

适用场景:跨域传值


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         List<Grounding> grounding = 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", "*");


   

原文地址:https://www.cnblogs.com/zhao-blog/p/6669621.html