在ie9之中无法使用ajax的问题以及解决方案(以及layui的数据表格解决方案)
2019-07-11 10:35
471 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44220680/article/details/95452972
昨天,朋友遇到一个很Giao的问题,需要写一个程序,但是电脑系统最高适配IE9,就是说,
要写的代码最低也要兼容ie9!!!
当时博主朋友使用的layui(框架)来进行的前端书写。其他的兼容适配都没有问题,唯一的大Bug便是,在ie9里面jQuery的ajax方法不被兼容!!!ie9竟然不识别ajax!!!
经过长达2小时的搜索,找到的解决方案如下:
设置ajax的crossDomain配置为他的相反值。即:crossDomain: true == !(document.all),
以下时一个实例:
$.ajax({ url: "http://dreamfactorysql.cloudapp.net/API/index.php", dataType: "text", async: true, type: 'GET', cache: false, crossDomain: true == !(document.all), //设置crossDomain success: function(txt) { alert(txt); }
-
根据解决方案推出的原因所在:
官方解释:
Cross Domain AJAX主要就是A.com网站的页面发出一个XMLHttpRequest,这个Request的url是B.com,这样的请求是被禁止的,浏览器处于安全考虑不允许进行跨域访问,即同源策略。
自我理解:
这他娘的就是跨域了,或者说,ie默认你的ajax是跨域的(哪怕没有跨域),所以ie把你的ajax请求,拦截了!!!截了!!!了!!! -
针对layui数据表格的解决方案。
产生问题的原因:朋友用的layui的数据表格,是已经封装好的组件,没有给我们设置crossDomain的权限。
解决方法:
博主是对layui的源码直接进行改动,找到layui的数据表格组件,如何把crossDomain: true == !(document.all),这段直接加到里面的ajax请求里面去。
博主猜测,如果真的是跨域问题的话,那么是否其他几种解决跨域的方法是否也能解决这个问题呢。但是因为懒癌发作,放弃实验。(如果有人愿意尝试,可以留言分享一下结果)
相关文章推荐
- 关于mysql无法添加中文数据的问题以及解决方案
- 关于layui2.2.x版本使用table表格,刷新后table数据消失的问题
- layui与vue同时使用,绑定数据,无法正确显示的问题
- Spring MVC使用@ResponseBody返回JSON数据406以及乱码问题解决方案
- Spring MVC使用@ResponseBody返回JSON数据406以及乱码问题解决方案
- 使用 aui 自带的图片轮播图,AJAX异步调用数据给它无法轮播问题
- 17个使用AJAX技术的数据表格控件解决方案(Data Grids with AJAX, DHTML and JavaScript)
- Jquery ajaxSubmit()使用案例以及遇到的问题解决方案
- 使用百度编辑器ueditor表格无法显示边框以及边框颜色等系列问题解决方案
- JSF与ajax使用h:messages 在commandButton上交互的问题以及在JSF前端使用ENUM数据类型
- JS中使用Ajax获取的数据赋值不了问题的解决方案
- Spring MVC使用@ResponseBody返回JSON数据406以及乱码问题解决方案
- JSP和Servlet互相传输数据的过程中产生的乱码问题及解决方案(没有使用AJAX的情况)
- 17个使用AJAX技术的数据表格控件解决方案(Data Grids with AJAX, DHTML and JavaScript)
- 使用Bootstrap Tabs选项卡Ajax加载数据的实现以及遇到的问题;
- 17个使用AJAX技术的数据表格控件解决方案(Data Grids with AJAX, DHTML and JavaScript)
- ajaxfileupload.js在ie9中无法正常使用,有语法错误解决方案
- layui数据表格以及分页使用
- 使用SSIS从Excel导数据到DB出现uicode无法和non-unicode互相转换问题
- C#中DES加密解密问题、压缩解压缩文件、进度条以及WinForm中使用控制台的解决方案