2013-11-22 109 views
0

我試圖檢索一些第三方(外部網站)json數據。我認爲這會工作,但由於某種原因它不...無法檢索第三方json數據

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
<meta charset="utf-8" /> 
<title>JSON Test</title>  
</head> 
<body> 
... 

<script> 
$(document).ready(function(){ 
    $.getJSON("http://www.sodexo.fi/ruokalistat/output/daily_json/415/2013/11/22/fi?callback=?", function(data){ 
      alert(data.meta.generated_timestamp); 
     }); 
}); 
</script> 

</body> 
</html> 

我很難過。有任何想法嗎?

+4

你必須使用JSONP。 http://www.jquery4u.com/json/jsonp-examples/ – jantimon

+1

@Leke回調有問題。你確定你在使用JSONP嗎? http://jsfiddle.net/82wNq/22/ – thenewseattle

+0

是的,與jsonp,我試着在jquery4u的例子與?callback =?和?jsoncallback =?,但我只注意到有一個失蹤;在外部json文件上。這會阻止數據導入嗎? – Leke

回答

1

我在sodexo.fi上找不到任何信息,但即使您使用的是?callback(這使得jQuery使用JSONP而不是普通的XMLHttpRequest),您仍然需要服務器的合作來爲您提供正確的JavaScript返回。 sodexo.fi不會這樣做 - 至少不會被請求的URL。

此外,它不設置訪問控制允許來源頭部允許CORS(這也將讓您避開使用JSONP)。

除非你能找到一個JSONP的API,sodexo.fi自曝,你唯一的選擇是有承載您的前端還充當這些JSON請求的代理另一臺服務器。

+0

我還沒有真正使用JSON工作過,但該文件的格式JSON無;看起來正確。所以我猜你是說,服務器需要服務於文件作爲JSON,而不是不管它是目前擔任它。這就是錯誤被報告的原因 - (因爲jquery期望json類型)。 – Leke