0

google Places APIにgetリクエストを送信する必要がありますが、jsonpをサポートしていないため、javascriptだけを使用することはできません。phpファイルを使用してgetリクエストを実行し、jsonデータを取得するために通常のjqueryajax呼び出しを実行できることを読みました。ただし、phpファイルを使用して作成しました

<?php
echo file_get_contents("https://maps.google...");
?>

次に、ubuntuディストリビューションのhttp:localhost /サーバーでホストされているこのファイルに対してjqueryajaxリクエストを使用しますが、500httpサーバーエラーが発生します。私は何を間違っているのですか、またはこれを正しく行うにはどうすればよいですか?

</script>

      <script>
      $(document).ready(function(){

      $.ajax({
      url: 'http://localhost/places.php',
      dataType: "json",
      type: "GET",
      success: function( data){
      document.getElementById("paragraph").innerHTML= data.result[0].name;
      },
      error: function(request, status, error){
      document.getElementById("paragraph").innerHTML= "error";
      }
      })


      });

</script>
    <body>
    <p id="paragraph">
       Untouched Text.
    </p>
    <button id="b1">Click Me!</button>
    </body>

firebugを使用して表示される唯一のエラーメッセージは500InternalServer Errorであるため、html、javascript、またはjqueryではないと思います。

4

1 に答える 1

0

Google APIを呼び出しており、JSONを返す必要があるため、これで十分です。

<?php
    $json = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false");

    $data = json_decode($json);

    // manipulate data and rebuild json with $json = json_encode($data) if needed

    Header("Content-Type: application/json");
    die($json);
?>

これは、Googleが正しく形成された簡潔なJSONで私に答えるという点で機能します。

{

    "results": [ ],
    "status": "REQUEST_DENIED"
}

適切なAPIキー構成を使用すると、これを機能させる必要があります。呼び出しがブラウザで機能していることを確認し(Cookieなどなし-クリーンセッション、これfile_get_contents()により提供されます)、PHPインストールがSSLデータを回復できることを確認します(確認する必要がありますが、確認しましょう)。 、

file_get_contents("https://www.google.com/");

Googleのホームページを回復する必要があります。

この呼び出しには認証は必要ありません(レート制限がありますが、シャットアウトするために必要なすべての呼び出しを行う可能性は低いと思います):

http://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&sensor=false

上記は、アクセント付きの文字が含まれている可能性のある非常に複雑なJSONを返します。考えてみると、Header上記は次のようになります。

    Header('Content-Type: application/json;charset=UTF-8');
于 2012-11-14T09:15:10.027 に答える