8

Google は、住所のジオコーディングとリバース ジオコーディングのための優れた REST インターフェイスを提供しています。私の API キーは有効で、ブラウザのアドレスにリクエストを直接入力するとうまくいきます。ただし、次のjqueryはひどく失敗し、その理由がわかりません。ここで私を助けてくれることを願っています。

$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json",
  function(data, textStatus){
     console.log(data);
  });

このサービスに関する Google の REST インターフェイス ドキュメント: http://code.google.com/apis/maps/documentation/geocoding/index.html

4

4 に答える 4

17

ここでの問題は、JSONPコールバックを指定していなかったことです。正しいコードは次のとおりです

$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json&callback=?",
  function(data, textStatus){
     console.log(data);
  });
于 2009-05-22T15:04:12.427 に答える
3

セキュリティ上の制限により、別のドメインのページから URL に AJAX リクエストを送信することはできません。そのため、ブラウザに URL を入力すると機能しますが、JavaScript コードからリクエストを作成しようとすると機能しません。

一般的な回避策は、プロキシとして機能するサーバー側コンポーネントを使用することです。これは、AJAX リクエストを受け取り、Google ジオロケーターに送信します。

于 2009-05-22T14:43:53.373 に答える
0

エラー関数を追加する

            error: function(xhr, ajaxOptions, thrownError) {
            alert("Ajax Error: " + xhr.status + "\nMsg: " + xhr.responseText);
        }

それが単なるjson関連のエラーである場合は、デバッグを試みます

于 2009-05-22T14:48:21.383 に答える
0

私はまったく同じ問題を抱えていました。これが、私が最終的にそれを機能させることができた方法です。

Google マップの API ドキュメントを参照してください

于 2011-12-16T03:41:52.903 に答える