解决ajax跨域请求浏览器兼容问题

call.js 解决ajax跨域请求的浏览器兼容问题


                ie8、9  ajax  跨域 

### 问题描述 ###
avalon.ajax只对ie10以下的get跨域请求进行处理通过(jsonp)解决,没有兼容ie10以下的post跨域请求 .因此要解决avalon.ajax对ie8 9 跨域 post请求不支持的问题

### 使用方法 ###
使用$.call()方法实现ajax请求
示例如下:
javascript
$.call({
//get or post请求
type: 'post',
//请求url地址
url: 'http://'+ apiURL + '/index.php? i=5000&tsy=' + home.tsy,
//发送的数据
data: {"Number": 6},
//请求成功时的回调函数
success: function (data) {
...do something
}
});

### 整体实现思路 ###
首先判断浏览器版本,若为ie8 9 ,则使用XDomainRequest来进行跨域请求。否则,则将参数自动传入 avalon.ajax中调用。

在本文件中实现重点就是实现对ie8 ie9的跨域请求。

遇到的问题

  • 问题:tip和door等对象所在文件是通过index.html静态加入的,所以这些对象定义时使用require方法会出现错误(这些对象未定义)。

    解决方法:不用requie定义并返回对象,而直接定义成对象
    示例如下:

      var tip = avalon.define({
                .....
           });
     //或者这样定义
      var tip= {
                .....
           };
  • 问题:在ie8ie9下出现avalon.router 未定义的问题

    * 解决方法**:在mmRequest.js引入后,添加 if lt IE 9 示例如下:

       <!--[if lt IE 9]>
       <script src="./js/mmRouter.js"></script>
       <![endif]-->

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值