[英]jQuery getJSON won't work on cross domain
我正在嘗試使用谷歌地圖的 REST api 將輸入的地址轉換為坐標。 為此,我使用 jQuery 的 getJSON function,因為它使用原生 JSONP 調用。
雖然它不起作用,但它只是沒有成功,所以警報永遠不會被調用。
$("#makeCords").click(function(){
straat = $('#straat').val();
stad = $('#Stad').val();
land = $('#Country').val();
if(straat == "" || stad == "" || land == ""){
alert("Onvoldoende gegevens! Vul straat, stad en land aan voor het gebruik van de ´bereken coordinaten´ functie.");
}else{
$.getJSON("http://maps.google.com/maps/api/geocode/json?callback=?",
{
adress: straat +", " + stad +", " + land,
sensor: "false"
},
function(data) {
alert(data);
});
}
});
Google 地圖地理編碼 API 不支持 JSON-P; 它將忽略您的callback
參數,因此跨域 JSON-P 將不起作用。
您應該改用官方的 Google Maps Javascript 庫。 在內部,該庫確實使用 JSON-P 來傳遞信息(因為它幾乎是進行跨域請求的唯一方法),但 URL 僅供官方圖書館使用。
嘗試將&format=json添加到您的 get jason url 和 chaneg &callback=? 到&jsoncallback=?
試試 jquery jsonp:
$.ajax({
type: "GET",
url: "http://url",
dataType: "jsonp" ,
success: function (data) {
}
});
javascript(在本例中為 jquery)永遠不會在其自己的域之外獲取或發布數據(至少據我所知 javascript 不允許post
或get
跨域),這難道不是一種安全嗎? 您可以使用本地 php 腳本通過 curl 從谷歌服務器收集 json 信息並將您的獲取查詢發送到此本地腳本。 我會嘗試這種解決方法...
另一種方法是將谷歌地圖 api 用於 javascript。 您可以使用 api 中的地理編碼函數從給定地址檢索緯度和經度。 因此,您無需進行任何獲取或發布...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.