JSON响应在ajax调用中作为文件返回

时间:2011-01-17 21:01:04

标签: jquery ajax vimeo

我使用以下代码片段调用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响应。

3 个答案:

答案 0 :(得分:1)

数据是JSON,而不是JSON-P。它不是JSON-P所以你不能将它用作JavaScript。

答案 1 :(得分:1)

尝试使用here描述的方法。

答案 2 :(得分:1)

多次看了之后(发布然后删除我的评论),这就是我提出的:

您获得“文件”的事实只是浏览器如何处理结果的函数。当IE试图将其保存到文件时,Chrome显示结果很好。

您遇到了问题,因为您无法对与该网页所源自的域不同的域执行AJAX请求。这就是David Dorward所得到的。他们提供的例子是jsonp(与json不同)。基本上,您应该能够将ajax调用中的dataType更改为“jsonp”,并希望它将开始为您工作。

HTH