jquery ajax跨域 jsonp

3 篇文章 0 订阅

jQuery的$.getJson 方法是支持跨域的


页面请求:

[html]  view plain  copy
  1. $.getJSON(url+'?callback=?',{operate:'add'}, function (res){ }  
  2.                         });  


其实就是$.ajax的又一个封装

[html]  view plain  copy
  1. $.ajax({  
  2. type:'get',  
  3. url:url,  
  4. data:{},  
  5. dataType:'jsonp',  
  6. callback:'json_callback',  
  7. success:function(res){}  
  8.  })  


服务器php:

[php]  view plain  copy
  1. $callback=$_GET['callback'];  
  2.   
  3. print_r("$callback({key:\"value\"});");  


原理:

需要传一个callback的回调函数名到服务器端,服务器端拿到这个回调函数名,再将返回数据用参数的形式反回到客户端,这样客户端就能够调到。

callback=?就是不指定回调函数名,jquery会自动生成一个,类似这样:jsonp12148037045654,用firebug可以查看。

服务器端拿到这个callback,的返回格式就是 jsonp12148037045654({operate:'add'}); 像不像一个函数的定义。

使用$.ajax,指定callback参数,就相当于自定义了这个callback为“json_callback”,不需要jquery自动生成。


ajax 跨域请求是不支持post的,切记。

jquery官网:

http://api.jquery.com/jQuery.getJSON/#urldatacallback

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值