1

我有 2 个不同的项目,其中 Web 应用程序需要访问服务器端的一些 Rest API。因此,我在服务器端使用 JacksonMapper 设置 Spring MVC Rest API,在客户端使用 Jquery.ajax() 设置 JSONP 请求,效果很好。

但是,我发现 Safari(版本 6.0.5)完美地显示了带有 GET 请求和 contenType“json”(在没有回调的 Rest API 上)的 JSON 响应,而所有其他浏览器都失败了。只是出于好奇,有人可以解释一下这是怎么可能的吗?

这是请求:

$.ajax({
    type: "GET",
    dataType: "json",
    url: url,
    data: {
        origin: start.toUrlValue(6),
        destination: dest.toUrlValue(6)
    },

    success: function (data) {          
        console.log(data);
        var res = JSON.stringify(data); //json to string
        $('#result').text(res);
    },

    error : function(jqXHR, textStatus, errorThrown) {
        alert("Request failed: " + textStatus);
        console.log(JSON.stringify(jqXHR));
    },
 });

更新 以清除问题。请求到达 API,我可以看到,服务器正在执行工作并发送 JSON 响应。我只是无法在任何其他浏览器中处理响应。

4

1 回答 1

0

我认为 API 不太可能有任何问题。

相反,很可能并非所有浏览器都支持您用来将数据发送到 API 的函数。

  1. 您可能并不总是获得url变量的值
  2. 你可能并不总是有.toUrlValue方法

在 firefox 中使用 firebug,您可以检查您从请求中发送的 POST 参数。确保您的 POST 数据在不同浏览器之间没有差异。

于 2013-08-16T21:41:42.623 回答