网页小Widget应用之数据绑定新方式:JSONP

本文介绍了JSONP作为一种跨域请求方式的特点与应用。通过实际案例展示了如何利用JSONP访问第三方服务,包括设置请求参数、回调函数等。此外,文章还讨论了JSONP的安全性及其在现代Web开发中的地位。

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

所谓JSONP,是跨域的一种访问方式,其特点在于比较方便地运行第三方的请求会话来进行跨域。在跨域这一点上,可以说是毫无顾忌的。跨域(Cross-Domain)在网络安全眼中可不是什么客气的行为。利弊兼有之,弄不好的话既不能为第三方提供访问数据的服务,又暴露了更多的安全漏洞,严重的还会引狼入室。一般的WebService中,支持JSON的还比较少,多数采用XML文档作为答应结果的格式文档。但是我们一方面知道,结合Script标签的src的自由性,却有无比的想象空间。那么能不能理由<script src="XXX">这个自由的触手去触碰任意一个角落的WebService呢?能,,不过限定采用的格式只能是JSON格式!

既然能够可靠的跨域,那么要求变换另外一个载体格式也是情理之中的,正所谓“鱼和熊掌不可兼得”,况且JSON不一定见得凑合不上。一些WebService供应商还是愿意使用JSON作为可选格式的,这样我们的浏览器有一次变为强大的客户端了,呵呵暗笑~是不是有点单纯式的浅薄呢~。

打开Ext.ux.JSONP的源码 , 与标准库的Ext.data.ScriptProxy的实现如出一辙。使用方法如例子 :

这个例子是用户输入几个关键字,然后让Flicker查询相关的图片。request()方法第一个参数是WebService的地址,当前就是Flicker向公众公开的API地址。我们声明格式是params.foamt:jspon,提交的参数是params.tags的输入内容。Flicker API答应请求后,将结构返回浏览器客户端,即updateResults的函数中处理,列出查询的结果。点击图片打开例子演示。

可以说,这时候客户端就是Flicker的“马甲”,使用Flicker的服务,允许让用户自由地整合——用时下流行的Bizzword说,便是Mashup。

我们看看一个更复杂的进阶例子,演示地址在这儿 。它是有前面Ext Core的几个例子(Menu + Flickr JSONP + Carousel + Lightbox)所组成的,正是一个很好的示范例子(点击图片打开例子)。

 

跨域,是为“同源策略”之反动。客户端的访问权限渐松,方便了爱好浏览器编程的人,所以也就诞生了JSONP(JSON with Padding)。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sp42a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值