【问题标题】:Internet Explorer and JSONInternet Explorer 和 JSON
【发布时间】:2012-06-18 07:05:51
【问题描述】:

我对 IE 有一种奇怪的行为。 在开发环境中,JSON 调用可以完美运行,而在生产环境中,即使状态码为 200,它们也会因“parsererror”而失败。 我在 stackoverflow 中看到了其他消息,但我之所以发布,是因为我在两个环境之间有这种不同的行为。

开发环境:Ubuntu / Tomcat 6.026

生产环境:Win 2003 服务器/Tomcat 6.0.33

【问题讨论】:

  • 所以你在 IE 中打开 JSON 并且 IE 本身给出了解析器错误?如果是这样,我们谈论的是哪个版本的 IE?
  • IE9.如果你想看看:www。游戏它(没有空格)。我对产生 JSON 响应(对象数组)的底层 Web 服务执行 AJAX 请求(使用 jQuery)。然后调用错误钩子,我看到的错误是“parsererror”。我还尝试添加/删除响应标头,例如内容类型或字符集,但行为没有改变。
  • 如果我直接从浏览器调用服务 URL,我会得到预期的响应。生成的 JSON 似乎没有格式错误(我使用的是 Spring Framework,我没有自己格式化 JSON 响应)
  • JSON确实可以被Firebug正确解析。我收到“无法连接解析器错误”;你在某处创建警报吗?
  • 是的,我正在 jQuery.ajax 函数的错误钩子中创建警报(希望您能阅读)。 code $.ajax({ type : "GET", url : callEndpoint(projectServiceUrl, "paged", true), data : { "pageNumber" : page, "pageSize" : pageSize }, contentType: "application/json; charset:utf-8", cache: false, dataType : "json", success : function(result) { loadVisionsOnDom(result); }, error : function(x, e) { alert("Cannot connect\n" + e); } });

标签: ajax json internet-explorer parse-error


【解决方案1】:

我通过在@RequestMapping 注解中添加内容类型和字符集来解决

@RequestMapping(value = "/paged", method = RequestMethod.GET, produces="application/json; charset=utf-8")

【讨论】:

    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 2012-08-31
    • 2018-12-14
    • 2013-01-06
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多