2011-05-26 62 views
0

我想从解析包含JSON数据的URL JSON数据,但其扩展名不以.json解析JSON文件谁的URL扩展并没有以.json

当我尝试使用下面的代码来请求响应URL它用200个状态码发出ajax请求。

但我尝试与包含相同的数据与.json扩展名的其他网址,它的工作原理。

这里是我的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数据。

+0

您确认URL返回的内容吗?我不认为这个扩展对jQuery很重要。 – 2011-05-26 13:55:04

+0

文件扩展名无关紧要,重要的是该文件中的JSON是有效的,尽管'Content-type:application/json'不会伤害。 – 2011-05-26 14:03:59

+0

这是我试图解析的网址:http://api.tweetmixx.com/topics/318/tweeters – 2011-05-26 14:13:54

回答

1

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

现在他们正在处理这个问题。

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

2

更正:现在看到上面的示例url和内容类型是正确的,所以这是一个红鲱鱼的位。

扩展并不重要。 但是你打电话的URL需要返回正确的内容类型,这将是application/json说到我们的应用程序使用text/javascript,因为我相信浏览器有点宽松。

所以在我的情况下,我所说的JSP getJSON.jsp,设置它的内容类型,这样

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

我猜测,当您使用以.json extention服务器与正确的类型,但你回来其他扩展不会。