thinkphp新版设置了ajaxreturn方法如果是JSON格式会自动设置头信息为JSON格式,这样做在谷歌下可以正常解析,但是在IE和OPERA浏览器下就会提示下载,从而导致程序出错,修改方法如下
thinkphp新版设置了ajaxreturn方法如果是JSON格式会自动设置头信息为JSON格式,这样做在谷歌下可以正常解析,但是在IE和OPERA浏览器下就会提示下载,从而导致程序出错,修改方法如下 打开:ThinkPHP/Lib/Core/Action.class.php 查找到代码: 修改为: 总共有两处。另外,建议官方不要多此一举,text/html所有浏览器都支持,而application/json只有新型浏览器支持,会造成很多不必要的麻烦,[兼容很重要]。 QQ截图20130528152452.png ( 21.83 KB 下载:141 次 )
评论(21)
相关
回复大漠05月23日 应该单独判断一下jquery.form.js提交的场景 加入以下判断 if(strpos($_SERVER['CONTENT_TYPE'],'form-data')!=false){ $type = 'EVAL_FOR_JSON'; } 最后添加一种输出 case 'EVAL_FOR_JSON' : // 返回可执行的js脚本 header('Content-Type:text/html; charset=utf-8'); exit(json_encode($data)); 这样就区分开了普通ajax调用和伪form提交 |
|