对 TinySong 的 JSONP 请求总是失败
Posted
技术标签:
【中文标题】对 TinySong 的 JSONP 请求总是失败【英文标题】:JSONP request to TinySong always failing 【发布时间】:2014-02-23 13:43:14 【问题描述】:我正在尝试使用以下代码向 tinysong api 发送 JSONP 请求
var url = "http://tinysong.com/s/calvin+harris?format=json&limit=3&key=api_key"
function jsonpCallback(json)
console.log(json);
var script = document.createElement('script');
script.src = url+'&callback=jsonpCallback';
document.body.appendChild(script);
但继续在控制台中获取消息
Resource interpreted as Script but transferred with MIME type text/html:
我也尝试了以下方法并得到了同样的错误
$.ajax(
type: 'GET',
url: url,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
success: function(json)
console.log(json);
,
error: function(e)
console.log(e.message);
);
function jsonCallback(json)
console.log(json);
我确定 api 正在响应,因为我在 chrome 中检查了网络选项卡并且可以看到来自 API 的响应。您对我能做什么有什么建议,或者我需要编写一个服务器端 API 来 ping TinySong api?
【问题讨论】:
【参考方案1】:尝试在您的 ajax 调用中添加项目
jsonp:true,
在您的 jsonpCallback 之前或之后的行 还要确保您的网址附加了“&callback=jsonpCallback”。
我正在查看我的一些旧代码,这些是我看到的唯一区别
【讨论】:
所以你的建议有点奏效,我可以看到响应总是转到错误回调。即使它在错误回调中,我现在也在研究如何提取我需要的数据。 问题似乎是 TinySong API 不支持 JSONP。它以 text/html 而不是 javascript 的形式发回数据。此外,它忽略了回调参数,因此从不调用客户端的成功函数。以上是关于对 TinySong 的 JSONP 请求总是失败的主要内容,如果未能解决你的问题,请参考以下文章