javascript - ajax返回值问题

 军魂永驻1971 发布于 2022-11-30 00:38

ajax请求代码如下:

php处理部分:


火狐firebug :


打印不出来怎么回事???

6 个回答
  • 我比较喜欢直接用 $.post(settings)(其实更喜欢直接 $.ajax(url, settings)),这样参数比较清楚。回调通过 $.post() 或者 $.ajax() 返回的 promise 的 done() 来设置,这样结构比较清楚

    $.post({
        url: theurl,
        dataType: "json",
        data: {
            tablename: _tbname
        }
    }).done(function(jo) {
        // jo 是 javascript object
        // 从后端返回的 JSON 解析而来
        console.log(jo);
    });

    用你的那种方式,也可以直接在 callback 后面加个参数 "json" 来表示数据类型

    $.post("http://url/", { tablename: _tbname}, function(data) {}, "json");
    2022-11-30 01:50 回答
  • json_encode($data,JSON_UNESCAPED_UNICODE)

    2022-11-30 01:50 回答
  • 竟然也没报错, 你重启firefox看看吧
    PS: 设置响应头 @header("Content-Type:application/json;charset=utf8");
    就可以省略 var json = eval(data); 这步了
    而且, 用eval不安全, 建议用

    var json = jQuery.parseJSON(data);
    2022-11-30 01:50 回答
  • 换chrome(我是真心不习惯火狐的调试,你习惯那就算了),打断点调试,多半是没有进入方法。好久没用过火狐了,依稀记得以前好像也有过类似的问题,这个在chrome下应该是会报错的,在火狐下不报错。你先打断点看看吧,如果没进入方法就换chrome试试。

    2022-11-30 01:50 回答
  • 默认返回的data是字符串,而不是一个json对象,解决方式一,请求参数中指定返回类型为json,jquery内部会解析成对象;解决方式二,自己讲json字符串反序列化成对象。例如:http://blog.163.com/m13864039...

    2022-11-30 01:50 回答
  • 有的时候,不指定返回类型,返回的数据不一定是json对象,所以题主可以用JSON.parse()转换一下data,然后再进行操作就行。

    2022-11-30 01:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有