我正在尝试使用Google商家信息自动填充API,在Web应用程序中预先填写表单以创建数据,以简化数据输入. API非常简单,但似乎不想接受XHR.
$.getJSON("https://maps.googleapis.com/maps/api/place/autocomplete/json",{ input: input.term,sensor: false,types: 'establishment',location: '40.01496,-105.27029',radius: 10000,key: Config.googleplaceskey },function(places_response){ //Some other code. });
我在控制台中得到这个:
XMLHttpRequest无法加载https://maps.googleapis.com/maps/api/place/autocomplete/json?input=At\u0026amp;sensor=false\u0026amp;types=establishment\u0026amp;location=40.01496,-105.27029\u0026amp;radius=10000\u0026amp;key=AIzaSyDKzUgcLklQE_U5494vHq_SzrFakNHugaQ .来源http:// localhost:8086不允许Access-Control-Allow-Origin.
这是不是API不是什么意思?任何人都知道解决方法,或某种额外的参数,我可以发送,使其工作?
更新:
以下是此调用的API文档的链接.父文档实际上甚至有JavaScript JSON解析示例.真的很混乱,为什么这将在服务器端关闭.
http://code.google.com/apis/maps/documentation/places/autocomplete.html
解决方法
这是一个面向未来读者的代码片段,他们遇到这种情况.
使用“Places API”而不是“Maps API”,此代码段将使用Google的返回数据填充我的表单元素(包括用于自动填充的输入).
/* Use google place API to auto complete the address field and populate form inputs */ function addressAutoComplete(){ var planAddress = document.getElementById('mps_planaddress'),planCity = document.getElementById('mps_plancity'),planCounty = document.getElementById('mps_plancounty'),planZip = document.getElementById('mps_planzip'),planSub = document.getElementById('mps_plansubdivision'),options = { componentRestrictions: {country: 'us'} }; autocomplete = new google.maps.places.Autocomplete(planAddress,options); // After the user selects the address google.maps.event.addListener(autocomplete,'place_changed',function() { planSub.focus(); var place = autocomplete.getPlace(); planAddress.value = place.name; planCity.value = place.address_components[2].long_name; planCounty.value = place.address_components[3].long_name; planZip.value = place.address_components[6].long_name; }); }
在“place_changed”的自动完成中放置一个监听器(他们从列表中选择一些内容),然后使用返回的数据填写输入.
所有这一切都列在Place Library Google page上.