在url扩展名不是.json的javascript中解析json文件

问题描述

|| 我想从包含json数据的url中解析json数据,但其扩展名不是.json 当我尝试使用以下代码请求响应URL时,它使用200状态代码发出ajax请求。 但我尝试使用其他包含相同数据的URL扩展名为.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数据。     

解决方法

更正:现在在上面看到了您的示例URL,内容类型正确,因此有点像鲱鱼。 扩展名无关紧要。 但是您正在调用的URL将需要返回正确的内容类型,即
application/json
。前面已经说过,我们的应用程序使用了
text/javascript
,因为我相信浏览器会比较宽松。 因此,以我为例,我调用了一个JSP getJSON.jsp,将其内容类型设置如下:
 <%@ page language=\"java\" contentType=\"text/javascript; charset=UTF-8\" pageEncoding=\"UTF-8\"%>
我猜想当您使用.json扩展时,服务器将以正确的类型返回,而您的其他扩展名则不会。     ,经过与API支持团队的讨论,我找到了确切的问题。 实际上问题出在内容类型上。他们为该json数据实现了某种缓存系统,当我的脚本向API url请求时,它会发送该json数据并创建其缓存,并且该缓存在一段时间内保持活动状态。如果我的脚本创建了相同的请求,则从缓存中提供内容类型不是json的json数据。 现在他们正在研究这个问题。 顺便说一句,谢谢彼得的帮助。 :)