2011-10-15 73 views
1

我想从Vimeo获取AJAX响应,提取没有JQuery的缩略图。 但我没有收到回复,但如果我在浏览器中输入回复查询(http://vimeo.com/api/v2/video/30408418.json),我可以提供下载文件,它包含JSON格式的响应数据... 我刚刚尝试将相同的请求复制到一个页面,我的Flickr响应工作(与jQuery),并且响应仍然是空的,所以我认为这不是一个JSONP问题。Vimeo AJAX响应

继承人我的代码

var vimeoVid= {}; 
var request = getHTTPObject(); 
if(request){ 
    var requString="http://vimeo.com/api/v2/video/30408418.json"; 
    request.open('GET',requString,true); 
    request.onreadystatechange=function(){ 
     if(request.readyState==4){ 
     vimeoVid = JSON.parse(request.responseText); 
     } 
    }; 
    request.send(); 
    } 
    else 
    { 
    alert('Sorry, your browser doen\'t support XMLHttpRequest'); 
    } 
    console.log("vimeoVid"); 

其中

function getHTTPObject(){ 
if(typeof XMLHttpRequest == "undefined") 

XMLHttpRequest=function(){ 
try{return new ActiveXObject("Msxml2.XMLHHTP.6.0");} 
catch(e){} 

try{return new ActiveXObject("Msxml2.XMLHTTP.3.0");} 
catch(e){} 
try{return new ActiveXObject 
("Msxml2.XMLHTTP");} 
catch(e){} 
return false; 
} 
return new XMLHttpRequest(); 
} 

回答

1

AJAX不起作用跨域(除现代浏览器和其中明确允许的)。您已使用使用JSONP

实例网址:http://vimeo.com/api/v2/video/30408418.json?callback=bacon

+0

谢谢你,这就是我认为这是在第一,但后来我试了一下在最新的Firefox,而根据MDN支持跨域请求,并在脚本试图相同的字符串我之前用jQuery编写过,最初我从flickr获取数据,jQuery正在处理JSONP,但它也不起作用。 我没有在两种情况下都指定回调,这是否重要? –

+0

它*支持*跨域请求,但它们必须被原始地址允许。服务器必须发送一个“访问控制”标题,见https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Origin。我给出的示例URL应该可以用'jQuery.getJSON'正常工作。 –