jQuery中使用AJAX跨域操作

浏览器安全模型规定,XMLHttpRequest、框架(Frame)等只能在一个域中通信。从安全角度考虑,这个很合理;但也确实给分布式web开发带来了麻烦,例如想创建一个混搭的应用就有点不知所措了。

目前实现跨域操作的方式主要有:本地代理、Flash方式、Script标签。虽然AJAX本身不能进行跨域操作,但Script标签的src可以跨域访问,所以使用AJAX跨域操作可以看作都是基于Script标签的形式。

而jQuery中使用Script标签进行跨域操作可以分成两种形式:Script形式(对应的函数就是$.getScript())JSONP形式(JSON with Padding,对应的函数是$.getJSON())当然这两种函数都是$.ajax()的高层应用,所以使用$.ajax()也可以完成以上两种形式的AJAX跨域操作。

前面已经讲解了关于$.getScript()及$.getJSON()的使用,只不过那时都是同域操作,要改成跨域操作只需要修改url参数就可以了,将其改成"http://***.***.***/***.js"或"http://***.***.***?参数1=**&参数2=**&callback=?"

关于Script形式这里就不说了,因为大部分应用都是需要数据传输的(这里是JSON格式数据),所以只讲JSONP形式

前面说到$.getJSON("http://***.***.***?参数1=**&参数2=**&callback=?",function(data){})

如果是要向别人的网站请求数据,那么参数及参数数量需要具体查看该网站提供的API来做决定,而callback=?一般是必须的,jQuery会将那个?自动转化为jsonp*******(*为0~9的数字)   而jsonp*****()指向的就是后面的funcyion(data){}函数,jsonp*****(json对象)内的json对象作为返回数据就会作为参数data传入funcyion(data){}函数中。

http://www.douban.com/group/topic/3582852/

http://www.98web.net/blog/Article_detail.aspx?id=124

http://blogread.cn/it/article/1710?f=sr

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值