我使用以下代码片段调用Vimeo的REST API服务,数据在调用200 OK时显示为null。
$.ajax({
url:'http://vimeo.com/api/rest/v2?format=json&method=vimeo.videos.getInfo&video_id=7100569',
dataType:'json',
success:function(data){
alert(data);
}
});
当我复制粘贴网址(http://vimeo.com/api/rest/v2?format=json&method=vimeo.videos.getInfo&video_id=7100569)
时,它会给我一个要下载的文件。
我查看了有效的示例javascript示例
var url='http://vimeo.com/api/rest/v2?format=json&method=vimeo.videos.getInfo&video_id=7100569';
var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', url);
document.getElementsByTagName('head').item(0).appendChild(js);
我只是想知道我在这里做错了什么。请注意,第二个代码段提供了有效的JSON错误,而不是null响应。
答案 0 :(得分:1)
数据是JSON,而不是JSON-P。它不是JSON-P所以你不能将它用作JavaScript。
答案 1 :(得分:1)
尝试使用here描述的方法。
答案 2 :(得分:1)
多次看了之后(发布然后删除我的评论),这就是我提出的:
您获得“文件”的事实只是浏览器如何处理结果的函数。当IE试图将其保存到文件时,Chrome显示结果很好。
您遇到了问题,因为您无法对与该网页所源自的域不同的域执行AJAX请求。这就是David Dorward所得到的。他们提供的例子是jsonp(与json不同)。基本上,您应该能够将ajax调用中的dataType更改为“jsonp”,并希望它将开始为您工作。
HTH