1

我正在使用以下代码片段调用 Vimeo 的 REST API 服务,数据显示为空,调用 200 OK。

    $.ajax({
        url:'http://vimeo.com/api/rest/v2?format=json&method=vimeo.videos.getInfo&video_id=7100569',
        dataType:'json',
        success:function(data){
            alert(data);
        }
    });

当我在浏览器中复制粘贴 url(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 错误而不是空响应。

4

3 回答 3

1

数据是 JSON,而不是 JSON-P。它不是 JSON-P,因此您不能将其用作 JavaScript。

于 2011-01-17T21:03:25.403 回答
1

尝试使用此处描述的方法。

于 2011-01-17T21:07:10.427 回答
1

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

您获得“文件”的事实只是浏览器如何处理结果的一个功能。Chrome 显示结果很好,而 IE 试图将其保存到文件中。

您遇到了问题,因为您无法向与页面来源不同的域执行 AJAX 请求。这就是大卫·多沃德的意思。他们提供的示例是 jsonp(与 json 不同)。本质上,您应该能够将 ajax 调用中的 dataType 更改为“jsonp”,并希望它能开始为您工作。

高温高压

于 2011-01-17T21:12:49.100 回答