header('Content-Type:application/json');  // 旧版本IE不认。jq用法也有问题。$.post(URL+"/showLogList",function(data)
                                       {                                       
                                    alert(data.info);
                                        }, 'json');

解决方案 »

  1. 会提示下载有几种可能,content-type不被浏览器认识,content-type被用户设置为要求提示下载,header包含content-disposition
      


  2. 按照你说的我改成了你说的这样,同时将header('Content-Type:application/json; charset=utf-8'); 修改为
    header('Content-Type:text/html; charset=utf-8');  
    但是结果为什么只打印在页面上而没有  alert 出来{"status":1,"info":"\u4f60\u6709\u672a\u5b8c\u6210\u7684\u9009\u9879"}为什么不alert
      

  3. 其实异步请求是不应该提示下载文件的,我怀疑那个浏览器都不支持xmlhttprequest,是用隐藏表单提交的。
      


  4. 我用了firefox,效果是只显示返回的数据,不会alert返回数据: {"status":1,"info":"\u4f60\u6709\u672a\u5b8c\u6210\u7684\u9009\u9879"}我不知道为什么不alert 奇怪
      

  5. protected function ajaxReturn($data,$type='') {
            if(empty($type)) $type  =   C('DEFAULT_AJAX_RETURN');
            switch (strtoupper($type)){
                case 'JSON' :
                    // 返回JSON数据格式到客户端 包含状态信息
                    header('Content-Type:application/json; charset=utf-8');
                    exit(json_encode($data));改成 text/html去掉程序文件的 BOM 头
      

  6. 这个是正常现象,如果用firefox 或者chrome就不会弹出下载!