JSON Stringify在QA环境中缺失,但不在本地

时间:2017-04-07 16:48:41

标签: javascript jquery json ajax internet-explorer

相关(但重复):Is JSON.stringify() supported by IE 8?

也相关(但是IE版本不同):JSON object undefined in Internet Explorer 8

我正在与QA合作测试一项功能;该功能在我的系统上完美运行,但在他的系统中,他的开发者控制台中的'JSON未定义为异常:

enter image description here

但是,我在我的内容中完全没有例外。

我们两个人在兼容性视图中的Internet Explorer 11中运行相同的代码(尽管我们使用的IE11略有不同版本,他使用的是11.0.9600.18617,而我使用的是11.953。 14393.0)。

"关于"从他的电脑对话:

enter image description here

"关于"我的对话:

enter image description here

以下是相关代码:



function GetNewList() {
  jQuery.ajax({
    url: "MyAspxPage.aspx/GetServiceInformation",
    type: 'post',
    // It apparently complains about this line for him
    data: JSON.stringify({
      "scheduleDate": jQuery('#ATextBox').val()
    }),
    dataType: 'json',
    processData: false,
    contentType: 'application/json; charset=utf-8',
    // TODO: Error?
    complete: function(response, status) {
      if (status == 'success') {
        // Presumably, this is a problem too
        var jsonParsed = JSON.parse(response.responseText)

        // Get my dropdown menu
        var dropdown = document.getElementById('MyDropDown')

        // Remove all of the existing options
        var length = dropdown.options.length
        for (i = 0; i < length; i++) {
          dropdown.remove(0)
        }

        // Add all of the current objects
        jsonParsed.d.each(function(element) {
          var option = document.createElement('option')
          option.value = element.ServiceTypeId;
          option.text = element.ServiceTypeName;

          dropdown.add(option)
        })

        // Re-add --Select--, but only if there are other options. Otherwise leave it empty.
        if (jsonParsed.d.length > 0) {
          var option = document.createElement('option')
          option.value = 0
          option.text = '--Select--'
          dropdown.add(option)

          dropdown.disabled = false;
        } else {
          dropdown.disabled = true
        }
      }
    }
  })
}
&#13;
&#13;
&#13;

在相关的说明中,我想用UpdatePanel完全替换它,但我was having trouble getting it working

有谁知道造成这种情况的原因,以及我如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可能希望在应用中包含旧版IE的JSON polyfill。我有一个在IE 5模式下运行的应用程序中运行。同时说服您的团队从旧版本的I.E升级

这是json 3的一个 http://bestiejs.github.com/json3

你可以在这里阅读  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON