jsonp

本文深入解析了JSONP的工作原理,解释了为何需要跨域取值,并详细介绍了如何利用<script>标签的特性实现跨域数据获取。通过具体示例展示了使用jQuery实现跨域请求的方法,以及JSONP在SSO单点登录等场景中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:Jsonp说白了就是用来跨域取值

2:为什么要跨域取值

    同源策略:首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性

3:<script>标签具有跨域的能力

    jsonp就是利用此特性进行跨域取值(要注意的是服务端在返回数据的时候是不能返回json格式的,必须按照既定的格式去返回)

4:既定是返回格式(java):

    String callback = request.getParameter("callback"); 

    return callback+ "(" + jsonStr + ")" // 将需要的数据放在括号里面

    这里的callback相当于function函数名

    利用<script>的跨域能力,就相当于远程调用了个函数一样,所以我们候初次用的jsonp服务端直接返回json格式的数据是会报错的。因为json合适返回到客户端,是识别不出来的。

5:利用Jquery来实现跨域 

 $.ajax({
      url: 'http://xxxxxxxx',
      type: 'GET',
      dataType: 'jsonp',
      jsonp:'callbacka',//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
      jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
      success: function (result) {
        console.log(result)
      }
    });

 

6:jsonp可以做什么呢?

    jsonp用的最多的可能是SSO单点登录,跨越获取token等信息

转载于:https://my.oschina.net/isxiaoge/blog/502388

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值