Jquery Ajax GetJson实现跨域调用

      Ajax的应用中,由于安全的问题,浏览器默认是不支持跨域调用的,但是在1.2版本之后,Jquery的getJson方法就开始支持跨域调用,实现的原理主要是:虽然JavaScript不支持跨域调用,但是标签<Script>是支持跨域调用的,Jquery.GetJson方法就是利用这点实现的跨域调用。现在就来讨论下,如何利用Jquery.GetJson实现跨域调用。(当然你也可以使用Jquery.Ajax来实现跨域调用,但是其原理也是利用GetJson方法来实现的。)

 


    Jquery.GetJson主要是通过传递Json格式的数据来实现跨域调用的,所以如何封装和解释Json数据就非常重要。Json格式请查看官网的解释(http://www.json.org/json-zh.html),Jquery本身就带有解析Json格式的方法(http://api.jquery.com/jQuery.each/

 

这是Jquery官网对Jquery.GetJson的解释:

  使用GetJson客户端实例:

 

 

          Jquery.GetJson首先在客户端注册一个jsoncallback,然后把jsoncallback的名字(如:jsonp1236827957501)传给服务器。注意:服务端得到callback的数值后,要用jsonp1236827957501(......)把将要输出的json内容包括起来,用Response.Write(jsonp1236827957501(......))写入时,服务器生成 json 数据才能被客户端正确接收。

  使用GetJson服务端实例:

 

   这里要注意的是:Jquery1.5以后对Jquery.GetJson的方法的返回值做了修改,使用了jqXHR Object作为返回值。

            

在Jquery1.4中,对服务返回的Json数据格式有严格的要求,这是官网的解释:

在封装Json数据格式时,建议使用工具进行封装,不然容易产生错误,出错不易查找。

当然,跨域调用的方式有很多种,你可以使用$.Ajax来实现,但原理是一样的。Jquery给我们封装的方法还是挺方便的,建议使用。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值