JSON对象变为'null'

时间:2011-09-02 01:47:57

标签: javascript ajax json google-app-engine web-worker

我的html5网络工作者遇到了麻烦。 web worker postMessage()是调用worker的文档级javascript的JSON对象,它带有onmessage()函数。

显然可以访问“iterationsjob”键,因为工作人员可以处理相关的数字值,但这似乎只适用于谷歌浏览器,它仍然会引发错误:

18Uncaught TypeError: Cannot read property 'iterationsjob' of null

在Firefox中,Web工作者根本无法工作,似乎也无法访问这些数字,我正在成功进行ajax调用,但似乎绕过了日志记录步骤并引发了另一个错误分开ajax电话。 因此,我将工作人员记录()消息的基本方法一起复制到控制台,并从工作人员中调用它们:

var iterations
//get iteration data from the server
p.ajax.post({
    url:'/getdataurl',
    dataType: "json",
    success: function(responseText){
        log("test");
        log("responseText is "+responseText);
        iterations = responseText.iterationsjob; 
        log("iterations is "+iterations);         
    }
});

我希望看到以下内容:

test
responseText is [object Object]
iterations is 3993547

相反,我明白了:

test
responseText is [object Object]
iterations is 3993547
test
responseText is null
Uncaught TypeError: Cannot read property 'iterationsjob' of null

有人可以解释问题是什么以及如何解决? 编辑:我上传了源代码here的zip。在Google App Engine上运行。

谢谢!任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

啊,事实证明我需要在第二个ajax调用中添加一个空的成功回调函数。由于某种原因,如果没有定义的话,它会默认调用第一个成功回调...