2014-04-14 243 views
0

道歉問什麼看起來像一個經常被問到的問題,但我似乎無法能夠從以下網址獲得數據:http://www.strava.com/stream/segments/860503無法從URL獲取JSON數據

我曾嘗試以下:

$(document).ready(function() { 
    $.ajax({ 
     url: "http://www.strava.com/stream/segments/860503&callback=?", 
     dataType: "json", 
     success: function(data) { 
      $(document.body).append(data.latlng); 
     } 
    }); 
}); 

和:

$(document).ready(function() { 
    $.getJSON("http://www.strava.com/stream/segments/860503&callback=?", function(data) { 
     $(document.body).append(data.latlng); 
    }); 
)}; 

,但我沒有任何運氣。我用'json'和'jsonp'擺弄,添加'& callback =?'到網址以及SO上提出的其他內容,但無濟於事。

任何幫助,非常感謝。

+0

http://www.strava.com/stream/segments/860503?callback=abc& –

+1

試試這個教程中,特別是「從其他域加載JSON數據對象」部分:http://www.jquery4u.com/json/jsonp-examples/ – SsjCosty

回答

0

你試過了嗎?區別在於網址末尾的cb而不是?

$(document).ready(function() { 
    $.getJSON("http://www.strava.com/stream/segments/860503?callback=cb", function(data) { 
     $(document.body).append(data.latlng); 
    }); 
)}; 
0

該特定的URL不支持JSONP。它也不通過Access-Control-Allow-Origin響應頭提供對Cross Origin Resource Sharing(CORS)的支持,因此不可能通過ajax直接調用它。

對JSONP支持的要求是服務器必須輸出回調名稱作爲函數,將JSON作爲參數中的JavaScript對象或數組傳遞給該函數。例如:

myCallback({ ...... }); 

一種可能的解決方案是通過代理在相同域上,其中橫來源沒有服務器到服務器的請求中的問題的服務器側腳本的AJAX請求。

0

來自「http://www.strava.com/stream/segments/860503」的數據沒有回調。它不是用於跨域的。如果你的腳本在同一臺服務器上使用:你可以訪問服務器的php使用echo $_GET['callback'].'('.json_encode($return) .')'; 其他嘗試使用[php] cURL;