Javascript jQuery-getJSON-won';不能跨域工作
我正在尝试使用谷歌地图的RESTAPI将键入的地址转换为坐标。为此,我使用jQuery的getJSON函数,因为它使用本机JSONP调用 虽然它不起作用,但无法成功,因此警报从未被调用Javascript jQuery-getJSON-won';不能跨域工作,javascript,jquery,google-maps,jsonp,getjson,Javascript,Jquery,Google Maps,Jsonp,Getjson,我正在尝试使用谷歌地图的RESTAPI将键入的地址转换为坐标。为此,我使用jQuery的getJSON函数,因为它使用本机JSONP调用 虽然它不起作用,但无法成功,因此警报从未被调用 $("#makeCords").click(function(){ straat = $('#straat').val(); stad = $('#Stad').val(); land = $('#Country').val(); if(straat == "" || stad =
$("#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);
});
}
});
尝试将&format=json添加到get jason url和chaneg&callback=?要&jsoncallback=?请尝试将&format=json添加到get jason url和chaneg&callback=?要想&jsoncallback=?请尝试jquery jsonp:
$.ajax({
type: "GET",
url: "http://url",
dataType: "jsonp" ,
success: function (data) {
}
});
尝试jquery jsonp:
$.ajax({
type: "GET",
url: "http://url",
dataType: "jsonp" ,
success: function (data) {
}
});
javascript(在本例中是jquery)不会在自己的域之外获取或发布数据,这难道不是一种安全性吗(至少据我所知,javascript不允许跨域
发布或获取?您可以使用一个本地php脚本,通过curl从google服务器收集json信息,并将get查询发送到此本地脚本。我会尝试一下这个解决方法
另一种方法是使用GoogleMapsAPI进行javascript。您可以使用该api中的gecoding函数从给定地址检索纬度和经度。因此,您不需要进行任何get或post…这难道不是一种javascript(在本例中是jquery)永远不会在自己的域之外获取或发布数据的安全性吗(至少据我所知,javascript不允许跨域post
或get
吗)?您可以使用一个本地php脚本,通过curl从google服务器收集json信息,并将get查询发送到此本地脚本。我会尝试一下这个解决方法
另一种方法是使用GoogleMapsAPI进行javascript。您可以使用该api中的gecoding函数从给定地址检索纬度和经度。因此,您不需要进行任何GET或POST…谷歌地图地理编码API不支持JSON-p;它将忽略您的回调
参数,因此跨域JSON-P将不起作用
您应该改用官方谷歌地图Javascript库。图书馆内部确实使用JSON-P传递信息(因为这几乎是进行跨域请求的唯一方式),但该URL仅保留给官方图书馆使用。谷歌地图地理编码API不支持JSON-P;它将忽略您的
回调
参数,因此跨域JSON-P将不起作用
您应该改用官方谷歌地图Javascript库。在内部,库确实使用JSON-P传递信息(因为这几乎是进行跨域请求的唯一方法),但该URL仅保留给官方库使用。如果使用URLhttp://maps.google.com/maps/api/geocode/json
?地址确实是一种类型。但谷歌仍将以json格式的错误作为回应。因此,仍应执行警报。不是。如果使用URLhttp://maps.google.com/maps/api/geocode/json
?地址确实是一种类型。但谷歌仍将以json格式的错误作为回应。因此,仍应执行警报。不是。仍然无法访问success函数。仍然无法访问success函数。JSONP实际上不是向其他服务器发出请求的方式吗?我不能使用php curl,因为我的客户机的托管提供商不允许它:(.getJSON with callback=当您使用getJSON时,请求会变成跨域工作的JSONP请求。这应该是一个注释,而不是回答-1正如我allready所说。我非常确定这是一个安全问题。Javascript不允许跨域获取或发布。由于您的提供商拒绝使用curl,您仍然可以使用google maps api…您是错的。)不正确的Marco,您可以使用JSONP进行跨域请求。使用jQuery,您只需要设置数据类型:“JSONP”
,这就解决了问题。JSONP实际上不是向其他服务器请求的方式吗?我不能使用php curl,因为我的客户机的托管提供商不允许它:(.getJSON with callback=当您使用getJSON时,请求会变成跨域工作的JSONP请求。这应该是一个注释,而不是回答-1正如我allready所说。我非常确定这是一个安全问题。Javascript不允许跨域获取或发布。由于您的提供商拒绝使用curl,您仍然可以使用google maps api…您是错的。)不正确的Marco,您可以使用JSONP进行跨域请求。使用jQuery,您只需要设置数据类型:“JSONP”
这就解决了问题。URI现在还可以,google正在返回漂亮干净的json,但我知道这一点,因为我在浏览器中粘贴了URI。jQuery的ajax和getJSON函数都不会执行success函数。URI现在还可以,google正在返回漂亮干净的json,但我知道这一点,因为我在浏览器中粘贴了URI。bjQuery的ajax和getJSON函数都不会执行success函数。我刚刚发现,使用Chrome Javascript控制台,接收到JSON数据,但出现以下错误:未捕获语法错误:意外标记:
这是否意味着它可以工作,但不知何故,错误源在其他地方,还是我应该使用Google maps javascript库?您应该使用提供的JS库。不确定,但getJSON可能期望类似于jQuery1520493464060250754_1309622592360({/*json data*/})
,而不是{/*json data*/}
@Salman这就是我的意思,URL不支持JSON-P,因为它忽略了回调中指定的函数名。
。我刚刚发现,使用Chrome Javascript控制台,接收到JSON数据,但给出了以下错误:未捕获的SyntaxError:意外标记:
这是否意味着它可以工作,但不知何故错误的来源在其他地方,或者我应该使用Google maps javascript库吗?你应该使用提供的JS库。不确定,但是ge