当前位置: 首页 > 面试题库 >

Ajax DataType:JSON响应是:可以,但是没有输出?

樊宏邈
2023-03-14
问题内容

好的,这是我的问题。我有一个简单的jQuery Ajax请求,当我将DataType设置为“ JSON”时我无法工作。

    var form_data = { "id": msg, "token": token };

    $.ajax({
        type: 'POST',
        url: "ajax.php",
        data: form_data,
        dataType: 'json',
        beforeSend:function(){
            // this is where we append a loading image
        },
        success: function(data) { 
            var thing = JSON.parse(data);
            $('.body-item').html(thing.b);
        },
        error: function() {
            alert('error');
        }
    });

这实际上是我的ajax文件。该ajax.php如下所示:

            $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

            $foo = json_encode($arr);
            echo $foo;

当我运行jQuery脚本时,我收到了Firebug的200:OK响应,而当我查看响应时,得到了以下内容:
{"a":1,"b":2,"c":3,"d":4,"e":5}

但是,在.body-item div中没有​​显示任何内容,也没有尝试使用alert()。

另外,如果我运行相同的代码而没有:: dataType: 'json'部分,那么我将正确输出所有内容。

这可能是什么问题?


问题答案:

使用dataType: 'json'时jQuery调用JSON.parse()并将结果放入data。您不应该自己调用它,因为data它不是JSON字符串,而是已解析的对象。所以做:

$('body-item').html(data.b);

从文档中:

“ json”:将响应评估为JSON并返回一个JavaScript对象。



 类似资料:
  • 我是一个对使用python相当陌生的爱好者。自从我安装 Pygame 以来已经一周了,经过多次尝试,当我运行任何程序时,我仍然无法启动或打开 Pygame 窗口。我已经看了尽可能多的教程,并阅读了我能找到的关于类似问题的所有文章。我已经复制了在其他网站上找到的所有解决方案,但问题仍然存在。然而,更奇怪的是,我正在使用的IDE(Pycharm)很少输出错误消息,而是简单地继续运行,但从未启动Pyga

  • 问题内容: 我已经在旧版Spring MVC应用程序中实现了Spring Session 。我还使用来设置,因为我需要一些服务器亲和力才能运行Talend作业。 当运行前端并检查Chrome中的页面时,我看到了该会话的附件。如果将其从“ node1”编辑为“ node2”,则保留该会话。如果我在部署期间重新部署服务器并发出请求,我将被重定向到集群中的另一个节点,这意味着Spring Session

  • 我们有一个长时间运行的请求,我们接收到,但我们没有设置响应超时,所以它应该无限期等待,对吗?我还检查了user.properties和httpclient.parameters文件,也没有看到其中设置的任何值。 JMeter版本5.3

  • 问题内容: 第8.1.2.2节流水线说: “服务器必须以接收请求的相同顺序发送对请求的响应”。 因此,我想,如果我从浏览器发出多个AJAX请求,它们仍将按照服务器接收到的顺序进行处理。 但是后来,我从Alex Maccaw 读了这篇文章,他说: “最后一个问题是并行发送的Ajax请求。如果用户创建一条记录,然后立即更新同一条记录,则将同时发送两个Ajax请求,即POST和PUT。但是,如果服务器在

  • 我正在尝试返回Json文件的内容。但是我想在将其发送到前端之前进行修改。我想在文件的开头和结尾添加“[”和“]”。我这样做是因为json文件有。 例如,提取结果,如图所示 问题 是否可以更改响应主体并将其放回ResponseEntity? 源代码

  • 问题内容: 我正在尝试更好地将Eclipse与build.xml集成。我的构建文件调用GNU Make作为程序的本机部分,Makefile使用sudo将编译的库移到系统路径中。不幸的是,这需要输入密码,并且Eclipse的终端不接受用户输入。因此,在eclipse中运行构建的结果是: 可以解决这个问题吗?蚂蚁的身材可以升高到其他方式吗? 问题答案: 设置一个单独的帐户,例如 deployer 。进