Jsonp实现跨域原理

首先在讲Jsonp跨域之前,要先来介绍一下什么是跨域。

跨域就是:

当协议,ip/域名,端口有任何不同,都被当成跨域。跨域发生的时机是请求,响应回来之后。浏览器主动监测是否跨域。跨域的本质是请求成功了,响应也成功了。但是由服务端响应回来的数据被浏览器拦截。检测出跨域,抛异常。因此跨域并不影响一次成功的请求。在跨域之前请求已经执行完毕了。

解决跨域的方式有两种,一种是客户端解决跨域,一种是服务端解决跨域。

客户端解决跨域是Jsonp

Jsonp是一种跨域解决方案。

Jsonp跨域其实是利用了src的属性特点。

img,script都有src属性。利用标签中的src属性,不受到跨域限制的特点。可以拿到外部资源。

img虽然可以跨域。但是它只是拿资源回来。并没有进一步做任何js的动作。

只有script标签,会把云上面的资源拿回来。并且把云上面的资源内容作为js代码运行。

也就是说能被我们利用的漏洞就只有script一个。

接下来说一下Jsonp核心点:

就是利用script标签,可以跨域请求云端的资源。并且把云端的资源请求到本地。把资源作为脚本来运行

用jsonp做一个登录测试:

 就是前端script的src发起跨域请求。拼接参数,账号以及密码。然后向后端发起请求。后端接收响应之后,返回的时候。返回给我们一个方法名(形参,想要传的参数放里面)。这时候我们在前端写好一个方法名(接收后端传过来的东西)。当后端的数据返回的时候。我们会发现前端接收的其实是一个函数方法。而前端的script里面存在这个方法。所以返回函数。就相当于执行了script里面的那个方法。

succes(user)

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值