【问题标题】:Uncaught TypeError: Cannot read property 'length' of undefined error even Naming is correct未捕获的类型错误:即使命名正确,也无法读取未定义错误的属性“长度”
【发布时间】:2016-05-26 07:53:57
【问题描述】:

这是我的小服务程序

jsonObject.add("MessageInfo", jsonElement);
out.print(jsonObject);

这是我的 javacript 文件

$.ajax({
    type : "POST",
    url : "GetConversation",
    response : "json",
    data : "rideID="+rideID,
    // if received a response from the server
    success : function(data, textStatus, jqXHR) {
        console.log("success");
        console.log(data.MessageInfo);
            $.each(data.MessageInfo, function(index, value) {
                console.log("Data Found");
                var eachrow = "<div class='conversation'>"
                    +"<div class='bubble'>"
                    +value.messageBody
                    +"<div class='pic'>" 
                    +"</div>"; 
                $('.messageContainer').prepend(eachrow);
            }); 
    },
    // If there was no resonse from the server
    error : function(jqXHR, textStatus, errorThrown) {
        // alert("Something really bad happened " + textStatus);
    }
});

我正在向我的 servlet 发送 AJAX 请求并接收响应,但是当我使用 $.each 循环将其解析到我的 jsp 页面时,我收到了这个错误。

未捕获的类型错误:无法读取未定义错误的属性“长度”

这里也是响应的屏幕截图。

这是怎么引起的,我该如何解决?

【问题讨论】:

  • 你能给出console.log(data.MessageInfo)的值吗;
  • Uncaught ReferenceError: data is not defined at :2:13 at Object.InjectedScript._evaluateOn (:875:140) at Object.InjectedScript._evaluateAndWrap (:808 :34) 在 Object.InjectedScript.evaluate
  • @AnoopLL 它给出了 Uncaught ReferenceError: data is not defined(

标签: javascript jquery loops servlets foreach


【解决方案1】:

您对$.ajax 使用了错误的选项,它没有response 选项。但是您应该将其替换为dataType: "json"。在您使用此选项之前,Jquery 不会将字符串转换为 JSON 对象。

dataType (default: Intelligent Guess (xml, json, script, or html))
输入:String
您期望的数据类型 从服务器返回。如果没有指定,jQuery 将尝试推断 它基于响应的 MIME 类型(XML MIME 类型将产生 XML,在 1.4 JSON 将产生一个 JavaScript 对象,在 1.4 脚本将 执行脚本,其他任何内容都将作为字符串返回)。

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 2021-05-03
    • 2019-11-22
    • 2020-07-19
    相关资源
    最近更新 更多