2015-07-21 164 views
0

出於某種原因,我的JSON響應中的字段在IE中未定義。當我在鉻中運行它看起來很好。但在IE中,當我寫入控制檯時顯示未定義。IE 11奇怪的JSON問題

這裏是我的代碼

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的輸出: { 「項目」: 「1234」, 「AlternativeItem」: 「」, 「條件」: 「新的零售」 ,「PCS」:「20」,「描述」:「我的物品細節」,「價格」:「100」,「條件2」:「新」,「庫存」:「5 stk」,「ETAIfNotInStock」 「,」評論「:」「,」RowReference「:null}

+0

請註明您的JSON接收響應(編輯成短) – Richard

+0

您也可以嘗試清除瀏覽器緩存。 –

+1

是你的反應真的雙json編碼? – dandavis

回答

0

我清除了我的瀏覽器緩存,然後它開始工作。我必須清除兩次,然後重新啓動計算機。

IE非常特殊。

0

IE可能會緩存來自服務器的響應。

嘗試加入[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)]從服務器#WebAPI