繁体   English   中英

Google的Places API和JQuery请求-Access-Control-Allow-Origin不允许来源http:// localhost

[英]Google's Places API and JQuery request - Origin http://localhost is not allowed by Access-Control-Allow-Origin

我为想到的一个项目进行了一些测试,其中涉及使用附近的地方。 因此,我和大个子一起去,开始与Google的Places Api混为一谈。 我在地图上使用带有openstreet磁贴的传单。 现在一切都很好,直到我尝试使用此功能。

var lat = coords.lat;
var lng = coords.lng;
var apiUrl = "https://maps.googleapis.com/maps/api/place/nearbysearch/json";
var data = {
    key: 'AIzaSyBl8bmE8kQT7RjoXhP6k2yDti44h9-fSUI',
    location: lat+','+lng,
    radius: '10000',
    sensor: 'false',
    rankby: 'prominence',
    types: 'bar|night_club'
};
$.ajax({
  url: apiUrl,
  type: 'POST',
  data: data,    
  dataType:"jsonp",
  crossDomain: true,
  success: function(data) {
            var obj = $.parseJSON(data);
                // console.log(data.next_page_token);
          }
});

Origin http://localhost is not allowed by Access-Control-Allow-Origin.dataType属性更改为json但无法获取Origin http://localhost is not allowed by Access-Control-Allow-Origin. 使用jsonp时,我得到一个解析错误Unexpected token :显然$.parseJSON不起作用...是否有一种无需使用Google Maps Api即可使其工作的方法? 如果答案是否定的,那么还有其他地方的api和Google一样好吗?

谢谢!

您正在尝试使用Places API Web服务 ,该服务旨在从服务器代码中使用,并且不支持JavaScript所需的JSONP输出。

在JavaScript中,您需要使用Maps API V3中的位置 您不能直接从JavaScript或jQuery代码中访问URL。 (您可能会发现Places Library使用的URL模式,但是服务条款不允许未经API / Library的直接使用,并且URL随时可能更改。)

您是否有不想使用JavaScript的Maps API的原因?

https://github.com/joshtronic/php-googleplaces

刚刚制作并上传到我的网站之一。

<?php
include 'GooglePlaces.php';
include 'GooglePlacesClient.php';
$google_places = new joshtronic\GooglePlaces('your_key');
$google_places->location = array(<your_lat>, <your_lon>);
$google_places->radius   = 800;
$results                 = $google_places->nearbySearch();
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *'); 
echo json_encode($results);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM