2013-04-06 12 views
10

私は近くの場所を使用することを念頭に置いてプロジェクトをテストしています。だから、私は大きな人と一緒に行って、GoogleのPlaces APIを使いこなし始めました。私は地図のためにopenstreetタイルのチラシを使用しています。私はダグのことを使用しようとするまで、今はすべてうまくいきます。GoogleのPlaces APIとJQueryリクエスト - Origin http:// localhostはAccess-Control-Allow-Originによって許可されていません

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); 
      } 
}); 

jsondataTypeプロパティを変更する私はObviusly解析エラーUnexpected token :を取得Origin http://localhost is not allowed by Access-Control-Allow-Origin.をJSONP使用します$.parseJSONは、GoogleマップのAPIを使用することなく、この作品を作るための方法があります...動作しませんか?答えがいいえ... Googleのように別の場所apiは良いですか?

ありがとうございます!

答えて

17

Places API web serviceを使用しようとしています。これはサーバーコードからの使用を目的としており、JavaScriptに必要なJSONP出力をサポートしていません。

JavaScriptでは、Maps API V3Places Libraryを使用する必要があります。 JavaScriptやjQueryコードから直接URLをヒットすることはできません。 (は、プレイスライブラリが使用するURLパターンを検出する可能性がありますが、API /ライブラリを使用せずに直接使用することはできません。 JavaScriptからMaps APIを使用したくない理由がありますか?

+0

正直言って、自分の仕事からアプリ/サービスを作りたいと思っています。できるだけGoogleから離れたいと思っています。 – LouieV

+0

もちろん、それは十分に妥当です。私が困惑していたのは、Maps APIを使用せずにJavaScriptから直接Places API Webサービスを使用したいという考えでした。いずれにしてもGoogleサービスを使用しています。 –

+0

ええ、私は平和を作り、マップapiを使い始めました。 – LouieV

0

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); 
関連する問題