以下是我的代码块,其中我通过Web服务检索一个json字符串。是的,它在XML标记中。因此,我阅读了此标记,并使用jQuery解析器jQuery.parseJSON(xml.getElementsByTagName(“ string”)[0] .firstChild.nodeValue)进行了解析;

 $.ajax({ type: "POST",
        url: "http://localhost:14734/services/Project.asmx/GetProjectHistory",
        dataType: "xml",
        processData: true,
        error: function(XMLHttpRequest, textStatus, errorThrown) { ajaxError(XMLHttpRequest, textStatus, errorThrown); },
        success: function(xml) {
            var t = xml.getElementsByTagName("string")[0].firstChild.nodeValue;
            alert(t);
            var data = jQuery.parseJSON(xml.getElementsByTagName("string")[0].firstChild.nodeValue);
            GetProjectsActivity(data);
            GetUpcommingTask(data);
            // alert(data);
        }
    });


正如我所期望的,我得到了很多响应。但是在FireFox中,我看到该字符串被截断了。 jQuery.parseJSON(xml.getElementsByTagName(“ string”)
[0] .firstChild.nodeValue);


截断的字符串如下所示...


  {“ List”:{“ Table”:[{“ HDate”:“ 15 Sep”,“ ActionDateTime”:
  “ / Date(1316049833340 + 0530)/”,“ HTime”:“ 06:53:53”,“ UserName”:
  “ Dev1Intellial”,“ Project_Name”:“ yrr”,“ EntityType”:“ Project”,
  “ ActionType”:“已删除”,“ ID”:445,“ hID”:825},{“ HDate”:“ 15
  Sep“,” ActionDateTime“:” / Date(1316049831280 + 0530)/“,” HTime“:
  “ 06:53:51”,“ UserName”:“ Dev1Intellial”,“ Project_Name”:“ yrr”,
  “ EntityType”:“项目”,“ ActionType”:“已删除”,“ ID”:445,
  “ hID”:824},{“ HDate”:“ 15 Sep”,“ ActionDateTime”:
  “ / Date(1316047802467 + 0530)/”,“ HTime”:“ 06:20:02”,“ UserName”:
  “ Dev1Intellial”,“ Project_Name”:“ yrr”,“ EntityType”:“ Project”,
  “ ActionType”:“已插入”,“ ID”:445,“ hID”:823},{“ HDate”:“ 14
  Sep“,” ActionDateTime“:” / Date(1315984624977 + 0530)/“,” HTime“:
  “ 12:47:04”,“ UserName”:“ Dev1Intellial”,“ Project_Name”:
  “ 1315049911_administrator.png”,“ EntityType”:“文件”,“ ActionType”:
  “已插入”,“ ID”:51,“ hID”:819},{“ HDate”:“ 14 Sep”,
  “ ActionDateTime”:“ / Date(1315984411087 + 0530)/”,“ HTime”:“ 12:43:31”,
  “ UserName”:“ Dev1Intellial”,“ Project_Name”:
  “ 1315049980_coraline.png”,“ EntityType”:“文件”,“ ActionType”:“是
  已插入“,” ID“:50,” hID“:818},{” HDate“:” 14 Sep“,
  “ ActionDateTime”:“ / Date(1315983619353 + 0530)/”,“ HTime”:“ 12:30:19”,
  “用户名”:“ Dev1Intellial”,“项目名称”:“ stage3”,“ EntityType”:
  “ Stage”,“ ActionType”:“已删除”,“ ID”:1266,“ hID”:817},{
  “ HDate”:“ Sep 14”,“ ActionDateTime”:“ / Date(1315983554447 + 0530)/”,
  “ HTime”:“ 12:29:14”,“ UserName”:“ Dev1Intellial”,“ Project_Name”:
  “ fgdfgdfgdfg”,“ EntityType”:“步骤”,“ ActionType”:“已插入”,
  “ ID”:1284,“ hID”:816},{“ HDate”:“ 14 Sep”,“ ActionDateTime”:
  “ / Date(1315982622400 + 0530)/”,“ HTime”:“ 12:13:42”,“ UserName”:
  “ Dev1Intellial”,“ Project_Name”:“ sdfsdssdfs”,“ EntityType”:“ Step”,
  “ ActionType”:“已插入”,“ ID”:1281,“ hID”:799},{“ HDate”:“ 14
  Sep“,” ActionDateTime“:” / Date(1315982619307 + 0530)/“,” HTime“:
  “ 12:13:39”,“ UserName”:“ Dev1Intellial”,“ Project_Name”:“ sdfsdssdfs”,
  “ EntityType”:“步骤”,“ ActionType”:“已插入”,“ ID”:1280,“ hID”:
  798},{“ HDate”:“ 14 Sep”,“ ActionDateTime”:
  “ / Date(1315980254543 + 0530)/”,“ HTime”:“ 11:34:14”,“ UserName”:
  “ Dev1Intellial”,“ Project_Name”:“ stage1”,“ EntityType”:“ Stage”,
  “ ActionType”:“已删除”,“ ID”:1255,“ hID”:792},{“ HDate”:“ 14
  Sep“,” ActionDateTime“:” / Date(1315970910450 + 0530)/“,” HTime“:
  “ 08:58:30”,“ UserName”:“ Dev1Intellial”,“ Project_Name”:“ stage”,
  “ EntityType”:“阶段”,“ ActionType”:“已更新”,“ ID”:1251,“ hID”:
  741},{“ HDate”:“ 14 Sep”,“ ActionDateTime”:
  “ / Date(1315970792030 + 0530)/”,“ HTime”:“ 08:56:32”,“ UserName”:
  “ Dev1Intellial”,“ Project_Name”:“步骤”,“ EntityType”:“步骤”,
  “ ActionType”:“已更新”,“ ID”:1252,“ hID”:740},{“ HDate”:“ 14
  Sep“,” ActionDateTime“:” / Date(1315970754793 + 0530)/“,” HTime“:
  “ 08:55:54”,“ UserName”:“ Dev1Intellial”,“ Project_Name”:“ step”,
  “ EntityType”:“步骤”,“ ActionType”:“已更新”,“ ID”:1252,“ hID”:
  739},{“ HDate”:“ 14 Sep”,“ ActionDateTime”:
  “ / Date(1315970743077 + 0530)/”,“ HTime”:“ 08:55:43”,“ UserName”:
  “ Dev1Intellial”,“ Project_Name”:“步骤”,“ EntityType”:“步骤”,
  “ ActionType”:“启动



是的,它不是有效的json字符串,因此当jQuery.parseJson函数尝试对其进行解析时,由于无效的json格式,它将引发错误。

在Google chrome中,一切顺利,没有错误。问题仅在于FireFox。

最佳答案

你应该试试这个

https://bugzilla.mozilla.org/show_bug.cgi?id=194231

function nodeValue(xmlTag){
 if(xmlTag.firstChild.textContent && xmlTag.normalize) {
  xmlTag.normalize(xmlTag.firstChild);
  content=xmlTag.firstChild.textContent;
  } else if(xmlTag.firstChild.nodeValue) {
   content=xmlTag.firstChild.nodeValue;
  } else {
   content=null;
  }
 return content;
}

08-25 20:02