Internet Explorer (IE11) 不保存从 GET 返回的特定对象值

Internet Explorer (IE11) not saving specifc object value returned from GET

我遇到了一个相当奇怪的问题,即 IE (IE11) 在保存从 GET 返回的变量时遇到问题,这是一个特定的变量。对象中返回的其他变量是有效数据,一个在 IE 中不起作用的变量在其他浏览器中可以正常工作。

下面是我的实际代码示例和结果。

$.get("myPHPscript.php", function( data ) {
    // Parse result
    obj = jQuery.parseJSON(data);
    jobs = obj.jobs;
    // Loop through object
    for(var key in jobs)
    {
        name = jobs[key].name;  // Valid data in all 3 browers
            console.log("Name: " + name);
        id = jobs[key].id;      // Valid data in all 3 browers
            console.log("ID: " + id);
        status = jobs[key].status;  // Valid data in Firefox, Chrome but EMPTY in IE.
            console.log("Status: " + status);
    }
});

这是我从浏览器网络检查功能获得的 GET 调用中返回的数据示例。这在所有 3 个浏览器中都是相同的。

{  
   "jobs":[  
      {
         "id":"4142",
         "name":"Test",
         "status":"closed"
      },
      {  
         "id":"4143",
         "name":"testtttttt",
         "status":"open"
      },
      {  
         "id":"4144",
         "name":"Test job subclient",
         "status":"open"
      }
    ]
}

这是使用上述代码在浏览器中的结果图片。

注意:如果我将 obj 保存到全局变量并尝试在 IE 控制台中访问状态,它 returns 有效数据。

虽然我无法解决问题,但将变量名从 "status" 更改为其他任何名称都会在 IE 中生成有效数据。

根据 Microsoft 的说法,状态不是 Javascript

中的保留字

https://msdn.microsoft.com/en-us/library/ie/0779sbks%28v=vs.94%29.aspx

所以我不确定是什么导致了这个问题。

在 IE 中无效

status = jobs[key].status;  // Valid data in Firefox, Chrome but EMPTY in IE.
console.log("Status: " + status);

在 IE 中有效

status1 = jobs[key].status;  // Valid data all 3 browsers
console.log("Status: " + status1);

jobs[key]['status'] -- status 是保留字,所以必须用引号引起来。