如何使用php发出get请求,然后使用jquery访问它?

如何使用php发出get请求,然后使用jquery访问它?,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我需要向GooglePlacesAPI发出get请求,但是我不能只使用javascript,因为它不支持jsonp。我读到我可以使用php文件执行get请求,然后对该文件执行普通的jQueryAjax调用,以获取json数据。但是,我使用 <?php echo file_get_contents("https://maps.google..."); ?> 然后在我的ubuntu发行版上使用jQueryAjax请求托管在我的http:localhost/server上的这个文件,

我需要向GooglePlacesAPI发出get请求,但是我不能只使用javascript,因为它不支持jsonp。我读到我可以使用php文件执行get请求,然后对该文件执行普通的jQueryAjax调用,以获取json数据。但是,我使用

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

然后在我的ubuntu发行版上使用jQueryAjax请求托管在我的http:localhost/server上的这个文件,但是我得到了一个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>

$(文档).ready(函数(){
$.ajax({
网址:'http://localhost/places.php',
数据类型:“json”,
键入:“获取”,
成功:功能(数据){
document.getElementById(“段落”).innerHTML=data.result[0]。名称;
},
错误:功能(请求、状态、错误){
document.getElementById(“段落”).innerHTML=“error”;
}
})
});

未触及的文本。

点击我!

我使用firebug得到的唯一错误消息是500内部服务器错误,因此我认为这不是我的html、javascript或jquery

您正在调用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);
?>
通过正确的API密钥配置,您应该可以实现这一点。检查调用是否在您的浏览器中工作(没有cookies等-一个干净的会话,这是
file\u get\u contents()
将提供给您的),以及您的PHP安装是否能够恢复SSL数据(应该可以,但让我们检查一下),即

应该恢复谷歌的主页

此呼叫不需要身份验证(有速率限制,但我认为您不太可能拨打所有需要的呼叫以将您拒之门外):

上面将返回一个非常复杂的JSON,其中可能包含重音字符。现在我想起来了,上面的
标题应该是这样的:

    Header('Content-Type: application/json;charset=UTF-8');

你能发布你的PHP文件的完整代码吗。还可以启用错误报告,并告诉我们您遇到了哪些错误。查看您的整个代码将非常有用。你也可以把你的JavaScript粘贴到这里吗?你认为可能是我没有在我的php文件中包含places api吗?这就是我的php文件中的全部内容,我从中获得它的代码只有echo语句和file_get_contents调用。为了让它发回json,我需要添加什么?好的,这样就消除了php,但我得到的错误与您说请求被拒绝的错误相同。您发出了错误的调用,或者需要身份验证的调用(API密钥)。我在我的答案中添加了一个“简单”调用作为示例。我不需要在php文件中包含GooglePlacesAPI,对吗?我知道javascript文件我知道,但我不认为这是必要的,因为api是在javascript中的,对吗?尽管我得到了Get请求,但它没有成功,而是运行了错误函数。。。
file_get_contents("https://www.google.com/");
http://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&sensor=false
    Header('Content-Type: application/json;charset=UTF-8');