2012-04-29 36 views
-1

瀏覽本網站後,我發現您可以使用forecastjson以JSON格式獲取雅虎天氣。雅虎forecastjson給出XML錯誤

當我運行:

$.getJSON("http://weather.yahooapis.com/forecastjson?w=2112762724", function(data){ 
    ... 
}); 

我得到以下錯誤:

XMLHttpRequest cannot load http://weather.yahooapis.com/forecastjson?w=2112762724. Origin null is not allowed by Access-Control-Allow-Origin. 

我已經得到了這個錯誤之前,但它通常是因爲我試圖加載XML跨域但這顯然是JSON。如果您轉到getJSON函數的鏈接,它將顯示JSON數據。有誰知道我爲什麼得到這個錯誤?

感謝

回答

2

使用JSON並不意味着你不會遇到跨域問題。這是一個對象標準。

如果要製作跨域請求,應該使用JSONP

您嘗試請求的網址不支持JSONP請求。但是你可以使用YQL而不是那個。

這裏有一個例子,

var query = escape('select item from weather.forecast where woeid="2295424"'); 
var url = "http://query.yahooapis.com/v1/public/yql?q=" + query + "&format=json&callback=c"; 

$.getJSON(url, function(data) { 
    console.log(data); 
});​ 

這裏是URL可以檢查JSON結果。

DEMO