1 Star 0 Fork 1

kedong_liu / L-AJAX

forked from LiliComeOn / L-AJAX 
Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
README.md 1.89 KB
Copy Edit Web IDE Raw Blame History
LiliComeOn authored 2015-03-27 13:25 . 修改项目简介及使用方法

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

                ie8、9  ajax  跨域

问题描述

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

使用方法

使用$.call()方法实现ajax请求 示例如下:

   $.call({
               //get or post请求
               type: 'post',
               //请求i地址 前提是已经配置全局apiURL,例如:var apiURL = 'https://api.tansuyun.cn/index.php?i=';
               i:5,
               //发送的数据
               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]-->

Comment ( 0 )

Sign in for post a comment

1
https://gitee.com/kedong/L-AJAX.git
git@gitee.com:kedong/L-AJAX.git
kedong
L-AJAX
L-AJAX
master

Search