我正在使用Google Place API。
我想得到什么建议的地方打字帮助。
所以,我所做的是-
var Google_Places_API_KEY = "AIzaSyAK08OEC-B2kSyWfSdeCzdIkVnT44bcBwM"; //Get it from - https://code.google.com/apis/console/?noredirect#project:647731786600:access
var language = "en"; //'en' for English, 'nl' for Nederland's Language
var Auto_Complete_Link = "https://maps.googleapis.com/maps/api/place/autocomplete/json?key="+Google_Places_API_KEY+"&types=geocode&language="+language+"&input=Khu";
$.getJSON(Auto_Complete_Link , function(result)
{
$.each(result, function(i, field)
{
//$("div").append(field + " ");
//alert(i + "=="+ field);
console.error(i + "=="+ field);
});
});
所以我请求的链接是-
如果我用浏览器转到这个链接,我可以得到类似它的输出(请尝试点击)-
但是如果我尝试使用jQuery的.getJSON或.ajax,我的请求将被阻止,并显示以下消息:
。
所以XMLHTTPRequest被屏蔽了,因为-
否请求的资源上存在'Access-Control-Allow-Origin‘标头。因此不允许访问源'null‘。
我已经为这个问题的解决方案签入了StackOverflow,并通过here和here进行了检查,但无法完美地获得我的解决方案。
有没有人能开导我?
发布于 2015-02-06 14:45:29
AJAX请求只有在发送方和接收方的端口、协议和域相等时才有可能,否则可能会导致CORS。CORS代表跨域资源共享,必须在服务端支持。
解决方案
JSONP
JSONP或“带填充的JSON”是在web浏览器中运行的JavaScript程序中使用的一种通信技术,用于从不同域中的服务器请求数据,由于同源策略,这是典型web浏览器所禁止的。
像这样的东西可能会帮助你交配..:)
$.ajax({
url: Auto_Complete_Link,
type: "GET",
dataType: 'jsonp',
cache: false,
success: function(response){
alert(response);
}
});
发布于 2018-02-24 23:58:01
在@sideshowbarker这里找到答案后,我让它工作了:
然后使用这种方法让它工作:
const proxyurl = "https://cors-anywhere.herokuapp.com/";
const url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=${latitude},${longitude}&radius=500&key=[API KEY]"; // site that doesn’t send Access-Control-*
fetch(proxyurl + url) // https://cors-anywhere.herokuapp.com/https://example.com
.then(response => response.json())
.then(contents => console.log(contents))
.catch(() => console.log("Can’t access " + url + " response. Blocked by browser?"))
更多信息可以在上面链接中的答案中找到。
发布于 2017-04-10 20:27:45
Google提供了API客户端库:
<script src="https://apis.google.com/js/api.js" type="text/javascript"></script>
它可以在给定API路径和参数的情况下为您执行google API请求:
var restRequest = gapi.client.request({
'path': 'https://people.googleapis.com/v1/people/me/connections',
'params': {'sortOrder': 'LAST_NAME_ASCENDING'}
});
由于库是从google域提供服务的,因此它可以安全地调用google API,而不会出现CORS问题。
https://stackoverflow.com/questions/28359730
复制相似问题