2011-10-15 69 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'正常工作。 –