【问题标题】:JSON object becomes 'null'JSON 对象变为“空”
【发布时间】:2011-09-02 01:47:57
【问题描述】:

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

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

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

在 Firefox 中,网络工作者根本无法工作,而且似乎也无法访问数字,我得到了一个成功的 ajax 调用,但它似乎绕过了日志记录步骤并引发了另一个错误单独的ajax调用。 因此,我编写了一种基本方法,让工作人员将 log() 消息返回到控制台,并从工作人员内部调用它们:

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 的压缩包。在 Google App Engine 上运行。

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

【问题讨论】:

  • 向我们展示一个独立的测试用例来证明问题,而不是散文。
  • 哎呀,抱歉。自从那篇帖子以来我已经取得了一些进展,并且已经被隔离成两个不同的问题,所以我会投票删除那个帖子。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-07-25
    • 1970-01-01
    • 2023-03-27
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多