JavaScript:JSONP

同源策略

所谓同源策略就是指文档的js脚本只能访问和它处于同源的数据文件。如一个HTML文档中封装了ajax请求,要向服务器请求数据,那么被请求的数据必须和这个HTML文档在同一源,即必须同源。

所谓同源就是指两个文件的协议、域名(ip)、端口必须相同。如果不相同,则意味着不同源,这样浏览器是不允许访问的。AJAX必须是访问同源的数据。

而解决这种同源策略的方法称之为跨域,跨域的方法有很多种,这里介绍一下最经典的jsonp跨域。

JSON和JSONP

JSONP和JSON好像啊,他们之间有什么联系吗?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。

JSONP是JSON With Padding的简称。它是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。JSONP就像是JSON+Padding一样(Padding这里我们理解为填充),我们先看下面的小例子然后再详细介绍。

跨域的简单原理

AJAX只能请求到同源中的数据,那么如果HTML文件和数据文件在不同源中,如何才能够获取到数据——JSONP跨域。HTML标签中有一些标签本身就具有跨域的功能,有src属性的标签,如img、script。JSONP的使用步骤

  1. 在HTML文件中利用DOM操作创建script标签,并为该标签添加type属性和src属性,type属性值为"text/javascript",src属性值为目标文件的地址路径。
  2. 在HTML文件中定义一个函数,这个函数被称为回调函数。在该函数中定义一个形参,这个形参就是用来接收该函数被调用时传递过来的json数据。在该函数的函数体内封装数据的处理方式。在定义该函数时需要和后台人员进行沟通。
  3. 后台人员在数据所在的服务器上创建一个js文件,在该js文件中调用HTML页面中定义好的回调函数,在回调函数内部将json数据以实参的形式传递给前端。
  4. HTML文件中创建的script标签被添加到HTML文件中后,那么就意味着该HTML文件可以使用加载进来的js文件中的代码,该代码中实现了对当前文档中回调函数的调用,在调用时传递了数据,该数据就会被传递到HTML文件中的函数体中,此时就等同于HTML文档已经获取到json数据了。

光看定义还不是很明白,那首先我们先来手动做个简单易懂的小测试。新建一个asp.net的web程序,添加sample.html网页和一个t

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值