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
是保留字,所以必须用引号引起来。
我遇到了一个相当奇怪的问题,即 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
是保留字,所以必须用引号引起来。