2011-03-12 62 views
4

如果你們都能幫助我,我真的很感激。JQuery將腳本解釋爲json?

這是我收到的錯誤:「資源解釋爲腳本,但與MIME類型application/JSON轉移」

(「資源」指的是從谷歌的服務器JSON響應。)

這裏是我的代碼:

$(document).ready(function(){ 
    $.getJSON("http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false&callback=?", function(jsondata) { 
    }); 
    }); 
+0

當我運行的代碼我得到「請用POST請求」爲JSON響應......也許嘗試$就不是,指定的帖子? – 2011-03-12 07:35:58

+0

好的,謝謝 – Andrew 2011-03-12 07:37:18

回答

5

試試這個:

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="http://maps.google.com/maps/api/js?sensor=false"></script> 

<script> 
    $(document).ready(function(){ 
     var loc = "1600 Amphitheatre Parkway, Mountain View, CA"; 
     var geocoder = new google.maps.Geocoder(); 
     geocoder.geocode({'address': loc }, 
      function(data, status) { console.log(data); }); 
    }); 
</script> 
+0

你可能是有史以來最令人敬畏的人了。非常感謝! – Andrew 2011-03-12 07:50:19

+0

同意,我一直在尋找這個確切的解決方案。你是老闆。 – 2011-11-02 17:03:31

+0

出於好奇...有沒有人瞭解谷歌的地理編碼apis工作(哪一個使用時),似乎有幾個不同的選項,它們中的每一個都有不同的工作方式和不同的限制和能力。 – 2011-11-04 21:43:02

1

您呼叫不支持JSONP該網站,只返回的JSON。

+0

非常感謝你的回覆,但是你知道我怎麼能讓我的代碼工作,現在我知道我打電話的網站只響應json? – Andrew 2011-03-12 07:38:19

+0

@Andrew - 我對你以前的問題的答案(http://stackoverflow.com/questions/5281039/jquery-wont-get-json/5281137#5281137)展示瞭如何使用api對象來使用地理編碼。我可以在這裏重新發布它,如果你想... – Pandincus 2011-03-12 07:39:32

+0

請注意,使用地理編碼只允許您使用符合谷歌地圖的數據。看看使用條款 – Shaz 2011-03-12 07:42:14

0

所以我的地圖API有點生疏,但不是callback=?在最後把輸出變成JSONP result,這確實是一個腳本?

嘗試開溝查詢字符串的回調部分。

+0

如果我這樣做,那麼我最終會出現Access-Control-Allow-Origin錯誤。 :(這實際上是我剛剛修復的。 – Andrew 2011-03-12 07:39:10

1

爲了從另一個域獲取JSON(如googleapis.com),你必須使用JSONP不是普通JSON(更多信息,請閱讀在same origin policy上)。

幸運的是,添加一個GET參數,其值爲問號(callback=?,在您的代碼中)會導致jQuery嘗試進行JSONP調用。 Un幸運的是,該網站正在忽略您對JSONP的請求並提供直接的JSON。

兩個可能的原因是該網站不支持JSONP(這對於公共Google API來說可能很奇怪),或者它期望該名稱是其他內容(即不是callback=)。查看Google API文檔,瞭解他們期望/支持的內容。

+0

好吧,非常感謝。 – Andrew 2011-03-12 07:40:07

+0

支持的選項:回調,base_domain,語言,other_params ---顯然谷歌確實接受回調;謝謝你消除一個可能的錯誤來源,雖然 – Andrew 2011-03-12 07:41:49