1

我通过每半分钟发送一次请求来更新我页面上的一些帖子,然后在页面上显示更新的帖子。

它在 FireFox 中正常工作,但在 Chrome 和 Safari 中,显示错误“无法读取 null 的属性‘状态’”。以下是我发送请求并在成功时显示结果的 JavaScript 代码。

var updatePost = function() {

    var lastid = document.getElementById('lastTopic').value;

    en4.core.request.send(new Request.JSON({
      url : en4.core.baseUrl + 'group/topic/topic-update',
      data : {
        format : 'json',        
        lastid : lastid,
        topic_id : '<?php echo $this->topic->getIdentity(); ?>',
        group_id : '<?php echo $this->group->getIdentity(); ?>',
      },
      onRequest:function()
          {

          },
      onSuccess : function(responseObject) {
        if(responseObject.status) {

            // Remove old last topic id
            $('lastTopic').remove();

            //Add notification at top of list
            $('topicUpdateNotify').innerHTML = "<a href='javascript:void(0);' onclick='scrollToPost("+responseObject.newLastId+");'>New Post update is available - click this to show it. </a>";

            // Append li to list with content
            var ul = document.getElementById("group_discussions_thread");
            var newLI = document.createElement("LI");
            newLI.innerHTML = responseObject.body;
            ul.appendChild(newLI);                  
        }
      }
    }));
    };

请求成功后,我使用 if(responseObject.status) {}. 它在 FF 中正常工作,但在 Chrome 和 Safari 中没有显示结果。

我在zend框架中工作。

请提出任何解决方案。

4

1 回答 1

2

尝试使用

if(typeof responseObject.status != 'undefined')

或者

if(responseObject.hasOwnProperty('status'))

或者

if('status' in responseObject)

来自: JavaScript isset() 等价物

于 2013-10-01T13:01:08.290 回答