一个Thinkphp、jquery ajax、IE10以下浏览器的BUG冲突问
来源:互联网 发布:网络剧的受众分析 编辑:程序博客网 时间:2024/06/06 03:40
问题所在:
Thinkphp 的控制器方法json() http://www.kancloud.cn/manual/thinkphp5/118017 默认把contentType设为"application/json"
但是IE10版本以下的浏览器IE9,8,7都不支持contentType=application/json,在用jq 的ajaxSubmit或ajaxForm方法提交请求时,会发生错误,提示文件下载。(很奇怪。。。用$.post()提交ajax请求就不会出现这个问题。
相关描述:
http://www.thinkphp.cn/code/196.html
http://www.360doc.com/content/15/0218/19/466494_449338553.shtml
解决思路:
既然不支持contentType=application/json,那么我们就还是用contentType=text/html的方式,
原始的简单粗暴方法:用string类型的json字符串进行通信,然后解析~
例子:
Thinkphp Controler:
return "{\"status\":\"success\",\"msg\":\"提交成功\",\"data\":\"null\"}";/*return json([<span style="white-space:pre"></span>'status' => 'success',<span style="white-space:pre"></span>'msg' => '提交成功',<span style="white-space:pre"></span>'data' => null<span style="white-space:pre"></span>]);*/</span>
Thinkphp View:
var options = { url: "__ROUTE__", type: 'post', //dataType :'json', success: function (data) { data = JSON.parse(data); if(data.status == 'success'){ show_notice('success',data.msg); } else { show_notice('failed',data.msg); } }, timeout:6000 }; $("#form").ajaxSubmit(options);
0 0
- 一个Thinkphp、jquery ajax、IE10以下浏览器的BUG冲突问
- 善用encodeURI解决AJAX在IE10以下浏览器中的莫名BUG
- jQuery 的ajax 不支持ie10 或者以上浏览器的问题
- 解决$.ajax()在IE10以下失效的问题
- 解决$.ajax()在IE10以下失效的问题
- jQuery中浏览器版本判断的一个BUG
- 一个ajax的bug
- IE8及以下JavaScript的一个bug
- jQuery browser msie 判断 浏览器 ie6 bug jQuery中浏览器版本判断的一个BUG,此BUG已影响到jqModal,thickbox等多个jQuery插件的应用
- php thinkphp的一个小BUG
- 兼容ie10以下版本的placeholder属性
- 发现一个thinkphp BUG
- 【IE bug 解决办法】IE下(IE10及以下)当元素为absolute定位时,点击事件失效的解决办法
- jQuery 2.x 不支持IE9以下的IE浏览器
- VS2010 与IE10的Debug冲突解决方案
- 两个jQuery(js)特效冲突的bug的解决
- 苹果浏览器CSS一个奇怪的BUG
- 一个浏览器兼容性bug所想到的
- 对二叉树进行前序、中序、后序遍历
- iOS10 相关权限配置(相机、相册、日历、媒体资料库)
- C#大数阶乘算法
- git push 时出现hint错误
- 自我命名规范
- 一个Thinkphp、jquery ajax、IE10以下浏览器的BUG冲突问
- spring,mybatis事务管理 隔离级别与事务传播
- Strus2_OGNL表达式
- Spring Boot 配置文件 - 属性大全
- Android 5.x 权限问题解决方法
- Unsupported class version number [52.0] (maximum 51.0, Java 1.7))
- HTML第四章上机练习4
- java创建一个子类对象是会调用父类的构造方法会不会创建父类
- Android 用MediaCodec实现视频硬解码