如何解决在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数据。
现在他们正在研究这个问题。
顺便说一句,谢谢彼得的帮助。 :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。