IE 11与JSON的奇怪问题

时间:2015-07-21 18:04:49

标签: javascript jquery asp.net json

由于某些原因,我的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}

2 个答案:

答案 0 :(得分:0)

IE可能正在缓存来自服务器的响应。

尝试将[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)]添加到服务器#WebAPI

的响应中

答案 1 :(得分:-1)

我已经清除了浏览器缓存,然后开始工作了。我必须清除它两次,然后重新启动计算机。

IE非常特别。