位置: 编程技术 - 正文

jquery中ajax处理跨域的三大方式

编辑:rootadmin

推荐整理分享jquery中ajax处理跨域的三大方式,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

由于JS同源策略的影响,因此js只能访问同域名下的文档。因此要实现跨域,一般有以下几个方法:

一、处理跨域的方式:

1.代理

2.XHR2

HTML5中提供的XMLHTTPREQUEST Level2(及XHR2)已经实现了跨域访问。但ie以下不支持

只需要在服务端填上响应头:

3.jsonP

原理:

ajax本身是不可以跨域的,通过产生一个script标签来实现跨域。因为script标签的src属性是没有跨域的限制的。

其实设置了dataType: 'jsonp'后,$.ajax方法就和ajax XmlHttpRequest没什么关系了,取而代之的则是JSONP协议。JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问。

ajax的跨域写法:

(其余写法和不跨域的一样):

比如

二、解决ajax跨域访问、 JQuery 的跨域方法

jquery中ajax处理跨域的三大方式

JS的跨域问题,我想很多程序员的脑海里面还认为JS是不能跨域的,其实这是一个错误的观点;有很多人在网上找其解决方法,教其用IFRAME去解决的文章很多,真有那么复杂吗?其实很简单的,如果你用JQUERY,一个GETJSON方法就搞定了,而且是一行代码搞定。

下面开始贴出方法。

注意,getregion.aspx中,在输出JSON数据时,一定要用Request.QueryString["jsoncallback"],将获取的内容放到返回JSON数据的前面,假设实际获取的值为,那么返回的值就是 ([{"_name":"湖南省","_regionId":},{"_name":"北京市","_regionId":}])

因为getJSON跨域的原理是把?随机变一个方法名,然后返回执行的,实现跨域响应的目的。

下面一个是跨域执行的真实例子:

jQuery跨域原理:

浏览器会进行同源检查,这导致了跨域问题,然而这个跨域检查还有一个例外那就是HTML的<Script>标记;我们经常使用<Script>的src属性,脚本静态资源放在独立域名下或者来自其它站点的时候这里是一个url;这个url响应的结果可以有很多种,比如JSON,返回的Json值成为<Script>标签的src属性值.这种属性值变化并不会引起页面的影响.按照惯例,浏览器在URL的查询字符串中提供一个参数,这个参数将作为结果的前缀一起返回到浏览器;

看下面的例子:

这种方式被称作JsonP;(如果链接已经失效请点击这里:JSONP);即:JSON with padding 上面提到的前缀就是所谓的“padding”。那么jQuery里面是怎么实现的呢?

貌似并没有<Script>标记的出现!?OKay,翻看源码来看:

页面调用的是getJSON:

继续跟进

跟进jQuery.ajax,下面是ajax方法的代码片段:

上面的代码第1行到第行:判断是JSON类型调用,为本次调用创建临时的JsonP方法,并且添加了一个随机数字,这个数字源于用日期值;

关注第行,这一行相当关键,注定了我们的结果最终是<Script> ;然后是构造Script片段,第行在Head中添加该片段,修成正果;

不仅仅是jQuery,很多js框架都是用了同样的跨域方案,这就是getJSON跨域的原理。

更多精彩内容,请点击《ajax跨域技术汇总》,进行深入学习和研究。

标签: jquery中ajax处理跨域的三大方式

本文链接地址:https://www.jiuchutong.com/biancheng/379262.html 转载请保留说明!

上一篇:实例详解jQuery结合GridView控件的使用方法(jquery示例)

下一篇:jQuery实现二级下拉菜单效果(jquery二级导航栏)

  • 金税盘是什么时候开始使用的
  • 税务五化是指
  • 安装服务费税率是多少
  • 生产成本里面的直接人工
  • 转登小规模以前的留抵税额能申请退吗
  • 小微企业免征的增值税要交所得税吗
  • 进口增值税抵扣信息委托核查函
  • 境外机构在境内发行的人民币债券
  • 计提和缴纳企业所得税分录
  • 私售发票如何处罚
  • 制造企业发出材料成本的计价方法
  • 员工福利费进项转出
  • 多计提的城建税怎么办
  • 机械租赁公司拿什么发票做成本账
  • 原材料加工费怎么入账的
  • 进口关税专用缴款书在哪里打印
  • 地税没报税怎么办
  • 特许权使用费分摊比例怎么算
  • 本期应付而未付工资挂账处理?
  • 工程结算收入以前年度多结转收入怎么处理?
  • 公司给职工买工伤险流程
  • 小规模纳税人开票额度
  • 穿越火线刷枪视频教程
  • 配股条件是什么意思
  • 汽车销售公司购买车辆会计科目
  • 先开票后发货怎么操作
  • 注册表被恶意锁定怎么恢复正常
  • php更新数据
  • 公司送红包账务怎么处理
  • 职工教育经费会计准则最新规定
  • 马齿笕对什么病最有效?
  • 矿业财务好做吗
  • linuxweb服务器搭建教程
  • zendframework3中文手册
  • php使用自定义函数编程求半径r的圆的周长和面积
  • 企业所有的支出是什么
  • 给客户开的发票,在邮寄过程中丢了怎么办?
  • Vue3-Pinia的基本使用
  • 会计凭证出现的问题
  • 个体户办营业执照网上怎么申请
  • 什么是企业所得税收入
  • 开发产品的成本
  • 利息调整摊销额计入投资收益吗
  • 帝国cms导入模板后怎样调用
  • 环保税计税依据怎么算
  • 同时安装vs2005团队开发版和sql 2005企业版的方法(downmoon原作)
  • 装修专票是几个点
  • 增值税专用发票抵扣期限
  • 销售折扣与折让在财务报表哪里
  • 动迁补偿金
  • 收到代持股权的账务处理
  • 专利技术评估价值7亿
  • 罚款是营业外支出还是管理费用
  • 广告费属于管理费用的哪一类
  • 分类法与品种法相比,最大的区别是
  • 非盈利社会团体可以开发票吗
  • 自产货物赠送客户账务处理
  • 企业购买固定资产要交什么税
  • 未取得增值税发票措施有哪些
  • 担保贷款中的特殊形式
  • 报税中反写是什么意思
  • 升级win8.1 64位系统后无法玩剑灵怎么办?win8.1系统无法玩剑灵的解决方法
  • win8电脑恢复系统怎么操作
  • 如何使用组策略脚本
  • mac截图快捷键设置
  • win7系统如何配置ip地址
  • openfiledialog怎么用
  • win7系统解决数字签名问题
  • win7 0x80070002处理方法
  • 双击windows 7桌面上的快捷图标可以干嘛
  • ajax 编码
  • ios平台中glsl中shadow2DProjEXT函数的简单说明以及变换矩阵的小注意点
  • jquery焦点
  • 安卓手机本地
  • unity3d的作用
  • javascript五种数据类型
  • unity角色扮演游戏
  • 发票在税务系统查不到对方要怎么做
  • 土地增值税按什么价格
  • 北京商业企业运行基地
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设