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

标签 javascript json xmlhttprequest iteration

在 XMLHttpRequest 之后,一个函数遍历 .records JSON,但是它只能在 chrome 或 Internet Explorer 中使用,不能同时在两者中使用。 问题是 .length 属性。

在 chrome 中,当我这样做时它可以工作:

 request1.response.records.length
 1438

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

request1.response.length 
30158

问题中的 JSON 开头为:

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

最佳答案

似乎 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

关于javascript - JSON 数组和对象长度在 Chrome 和 Internet Explorer 中的处理方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50221819/

相关文章:

javascript - 中止上一个请求后无法发出新的获取请求

javascript - Flask Python中未呈现不同的模板

javascript - 如何防止用户静默导航到 javascript 中的其他页面(没有确认对话框)?

json - 如何将 Laravel 集合数组转换为 json

javascript - 迭代嵌套的 JSON 数组并更改属性的值

javascript - Zepto 的 $.post 没有错误处理程序

javascript - FabricJS:垂直对齐文本中心

javascript - 从 JavaScript 调用 Qt 槽

python - 在python中加载json文件

javascript - 如何使用 Javascript 从 document.viewData 获取 Json 字符串