在Chrome和Internet Explorer中,JSON数组和对象长度的处理方式不同

时间:2018-05-07 20:18:00

标签: javascript json xmlhttprequest iteration

在XMLHttpRequest之后,函数迭代.records JSON,但它只能在chrome或Internet Explorer中运行,而不能同时在两者中运行。 问题是.length属性。

在Chrome中,当我这样做时它会起作用:

 request1.response.records.length
 1438

在Internet Explorer中,我只能访问整个JSON正文,而不能访问.records的值,而这在chrome中不起作用。

request1.response.length 
30158

问题中的JSON以:

开头
"{
  "total":null,
   "records":[{
  "id":"5465464865",
  "parentId": "545465",...

1 个答案:

答案 0 :(得分:2)

似乎Internet Explorer没有将您的响应解释为Javascript对象,而Chrome可以推断它并将响应视为JS。我不确定这是不是您的问题,但请尝试指定您希望收到的response type,如下所示:

var xhr = new XMLHttpRequest();
xhr.responseType = 'json'; //check if you have this line, add it if you don't