跨域解决方案之Jsonp

Posted lightbc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨域解决方案之Jsonp相关的知识,希望对你有一定的参考价值。

1.什么是Jsonp?

  Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

为什么我们从不同的域(网站)访问数据需要一个特殊的技术( JSONP )呢?这是因为同源策略。

  同源策略,它是由 Netscape 提出的一个著名的安全策略,现在所有支持 javascript 的浏览器都会使用这个策略。

 

2.使用Jsonp优缺点

  优点:

    1.可以跨域请求数据,摆脱同源策略的限制。

    2.对浏览器比较友好,尤其低版本浏览器。

  缺点:

    1.只支持GET请求。

    2.无法对请求错误进行获取和处理。

    3.安全性较差。无法防止页面的注入漏洞。

 

3.Jsonp具体实现

前端

$.ajax({
    url: 请求的url,
    type: "get",
    dataType: "jsonp",
    jsonp: "callBack",
    success: function(data) {
        //返回结果处理程序
    }
});

后端

   @RequestMapping(value = "getAllData",method = RequestMethod.GET)
    @ResponseBody
    public String getAllData(@RequestParam("callBack") String callBack){
        return callBack+"("+JSON.toJSONString(this.infoService.getAllData())+")";
    }

 

以上是关于跨域解决方案之Jsonp的主要内容,如果未能解决你的问题,请参考以下文章

跨域解决方案之JSONP

jsonp跨域请求数据实例之手机号码查询

ajax之jsonp跨域请求

JS跨域请求之JSONP

跨域请求之jsonp的实现方式

跨域解决方案 - JSONP