浏览器安全模型规定,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
相关推荐
利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
jQuery使用ajax跨域获取数据
Jquery跨域访问Web服务的demo源码
第1章 Web开发的发展与...第14章 jQuery中使用AJAX跨域操作 第15章 jQuery+PHP动态网站实践 第16章 jQuery键盘操作 第17章 jQuery可视化数据显示 本资料共包含以下附件: 《jQuery开发技术详解》光盘 源文件+ppt.rar
使用juery提交表单,实现ajax跨域请求
本资源主要介绍了AJAX跨域的解决办法,以及解决方案间的比较
jquery ajax json 跨域不解释,代码很简单 没几句话
ajax跨域操作,ajax跨域必须要前端和服务端指定共同规则,文档有列出操作实例。
NULL 博文链接:https://sagewsg.iteye.com/blog/1670992
解决ie8、9Ajax跨域问题(前端):jsp引入此js,Jquery Ajax正常写
跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作...
由于JS同源策略的影响,因此js只能访问同域名下的文档。因此要实现跨域,一般有以下几个方法: 一、处理跨域的方式: 1.代理 2.XHR2 HTML5中提供的... ajax本身是不可以跨域的, 通过产生一个script标签来实
本文将给您介绍如何使用getJSON来实现异步跨域提交表单
JavaScript基础 文档对象模型(DOM 操作得到的元素 jQuery增强用户体验 jQuery中使用AJAX跨域操作 jQuery键盘操作
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决...
通过jquery的ajax处理跨域请求的DEMO,代码比较简单,仅供学习参考。
基于jQuery的jsonp ajax跨域请求,
JQuery AJAX跨域提交参数、接收json数据.docx
ajax跨域java,前台jquery,json格式封装,中文传值问题,后台action层设置。sever层接收,传值中文解码
我们平时在同域中请求页面什么的时候不会有这种情况,这种情况大多发生在移动端的跨域请求中发生的。 ...就是当请求为非 HTTP中的 GET 和 POST的时候就不执行下面的代码,这样就可以只执行一...以上这篇浅谈jquery中ajax跨