javascript未定义的值

时间:2012-01-30 19:33:30

标签: javascript ajax

我正在创建一个返回JSON的Ajax。我可以在Firebug中看到返回的JSON,并对JSLint进行了验证 我无法提取内容。以下是我所看到的:

Data: {"shipments":[{"companyName":"GLOBAL SOL INC.", so on...........}]}

load: function(data){
    console.log("responseText " + data.responseText);

**Above results in: responseText undefined**

    var myVar = data.shipments;

    console.log("myVar " + myVar);

myVar [Object object]

上面的结果

3 个答案:

答案 0 :(得分:1)

在您的示例中,myVar引用包含对象的数组。要获取companyName值,请使用data.shipments[0].companyNamemyVar[0].companyName

答案 1 :(得分:0)

看起来响应工作正常。

尝试console.log(data)console.log(myVar)。 如果你在没有字符串的情况下调用控制台,那么它将显示对象的内容(至少在Chrome中)。

然后,您将能够告诉您需要要求的对象元素。这可能是一个JSON格式问题,但很难从你的问题中看出来。

答案 2 :(得分:0)

响应是否包含"responseText"属性?

{"shipments": [...], "responseText": ..., ...}

如果没有,那么data.responseTextundefined是有意义的,因为它没有被定义。

如果您要从responseText对象中查找XMLHttpRequest,它可能是load函数的不同参数。哪个参数取决于调用函数的脚本(特定库或自酿?)。

至于"[Object object]",这是toString的默认Object结果。如果您想再次使用JSON表示,请使用JSON.stringify(...)

console.log("myVar " + JSON.stringify(myVar));

或者,大多数浏览器控制台都提供浏览对象的功能。要使用它,只需将其作为单独的参数传递:

console.log("myVar", myVar);