【问题标题】:parsing json file in javascript who's url extension is not .json在javascript中解析json文件的url扩展名不是.json
【发布时间】:2012-07-25 01:44:50
【问题描述】:

我想从包含json数据的url解析json数据,但扩展名不是.json

当我尝试使用以下代码请求响应 url 时,它会使用 200 状态代码发出 ajax 请求。

但我尝试使用其他包含相同数据且扩展名为 .json 的 url,它可以工作。

这是我的 javascript 代码

var url='http://jsonurl.com/jsondata';
jQuery.ajax({
  url: url,
  dataType: 'json',
  success: function(d){
      jQuery.each(d,function(i){
       console.log(i);
    });
  }
});

所以我想要在 javascript 或 jquery 中解析文件的 json 内容的解决方案,这些文件没有 .json 扩展名但包含 json 数据。

【问题讨论】:

标签: javascript jquery json


【解决方案1】:

更正:现在看到上面的示例 url 并且内容类型是正确的,所以这有点像红鲱鱼。

扩展名无关紧要。 但是您调用的 URL 需要返回正确的内容类型,即 application/json 话虽如此,我们的应用程序使用 text/javascript,因为我认为浏览器有点宽松。

所以在我的例子中,我调用一个 JSP getJSON.jsp 来设置它的内容类型,如下所示

 <%@ page language="java" contentType="text/javascript; charset=UTF-8" pageEncoding="UTF-8"%>

我猜当您使用 .json 扩展名时,服务器会以正确的类型返回,但您的其他扩展名不会。

【讨论】:

    【解决方案2】:

    在与 API 支持团队讨论后,我发现了确切的问题。 实际上问题在于内容类型。他们为该 json 数据实现了一些缓存系统,当我的脚本向 API url 发出请求时,它会发送该 json 数据并创建其缓存,并且该缓存会在一段时间内保持活动状态。如果我的脚本创建相同的请求,那么从缓存提供的内容类型不是 json 的 json 数据。

    现在他们正在解决这个问题。

    顺便说一句,感谢彼得的帮助。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多