由于某些原因,我的JSON响应中的字段在IE中未定义。当我在chrome中运行它看起来很好。但在我写入控制台的IE中显示未定义。
这是我的代码
function getList() {
var argument = new Object();
argument.identifier = _settings.identifier;
$.ajax({
url: "/Vendor.aspx/GetList",
data: JSON.stringify(argument),
dataType: 'json',
contentType: 'application/json',
error: function (xhr) {
console.log(xhr);
},
success: function (data) {
addData(JSON.parse(data.d));
},
type: 'POST'
});
}
function addData(data) {
if (data === undefined || data === null || data.length == 0) {
alert('No data to show');
return;
}
//this.clearRows();
for (var index = 0; index < data.length; index++) {
var d = data[index];
var row = '<tr>' +
'<td>' + d.Item + '</td>' +
'<td>' + d.AlternativeItem + '</td>' +
'<td>' + d.Condition + '</td>' +
'<td>' + d.PCS + '</td>' +
'<td>' + d.Description + '</td>' +
'<td><input type="text" class="input-field-integer" id="' + d.Item + '"/></td>' +
'<td><input type="text" class="input-field-integer" value="' + d.Price + '"/></td>' + //This field is empty in IE but not in Chrome.
'<td><input type="text" class="input-field" value="' + d.Condition2 + '"</></td>' +
'<td><input type="text" class="input-field" value="' + d.Stock + '"</></td>' +
'<td><input type="text" class="input-field" value="' + d.ETAIfNotInStock + '"</></td>' +
'</tr>';
$(this._settings.fileTable + ' tbody').append(row);
console.log(d.Price); // value is undefined???
}
}
以下是JSON的输出: {“Item”:“1234”,“AlternativeItem”:“”,“条件”:“新零售”,“PCS”:“20”,“描述”:“我的项目详细信息”, “Price”:“100”,“Condition2”:“new”,“Stock”:“5 stk。”,“ETAIfNotInStock”:“”,“Comment”:“”,“RowReference”:null}
答案 0 :(得分:0)
IE可能正在缓存来自服务器的响应。
尝试将[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)]
添加到服务器#WebAPI
答案 1 :(得分:-1)
我已经清除了浏览器缓存,然后开始工作了。我必须清除它两次,然后重新启动计算机。
IE非常特别。