ie下提示下载返回的json数据

情况一:在注册时先用js验证数据然后使用ajax提交,返回json,在chrome里正常,在ie里就提示下载。

解决方法:

        这个提交虽然用的是ajax但是提交事件写在了onsubmit( )里,被当作了form提交, 返回数据被浏览器接受到了,所以只要把onsubmit改在onclick( ) 事件就可以了。

情况二: 使用ajaxfileupload文件上传组件,返回的json提示下载。后台用的是tp框架。

解决方法:

        这是因为ajaxfileupload内部使用的是伪form提交的原因,真正的ajax提交是不会有这种问题的。伪form表单提交返回的数据会被浏览器接受,而浏览器对于不识别的类型作了下载处理。但是ajax提交的返回值会被ajax接受到,所以不会提示下载。

        可以在输出时指定content-type,header("Content-Type: text/html; charset=utf-8");

        但是我后台返回数据用的是tp提供的ajaxreturn( ) 方法,没办法改变header, 只能换成echo json_encode($data); 问题解决。

以下是跟踪结果:

1. 用ajaxreturn 返回数据时的http头,content-type: application/json; 

131132_dTgs_912810.jpg

2. 然后用json_encode返回的http头:content-type: text/html;

131303_COpa_912810.jpg 

因为ie对于所有不识别的类型都会提示下载,而application/json部分浏览器才识别.


转载于:https://my.oschina.net/u/912810/blog/309150

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值