2012-11-14 38 views
0

我需要做一個獲取請求谷歌地方API但是我不能只使用JavaScript,因爲它不支持JSONP。我讀過,我可以使用PHP文件做一個獲取請求,然後執行一個正常的jquery ajax調用來獲取json數據。但是我創建使用如何使用php進行獲取請求,然後使用jquery進行訪問?

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

,然後使用一個jQuery Ajax請求該文件託管在我的HTTP php文件:在我的Ubuntu發行版的本地主機/服務器,但我得到一個HTTP 500服務器錯誤。我做錯了什麼,或者我該如何正確地做這件事?

</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> 

我使用螢火蟲的唯一錯誤消息是500內部服務器錯誤,所以我不認爲它是我的HTML,JavaScript或jQuery。

+1

你可以發佈你的PHP文件的完整代碼。同時啓用錯誤報告並告訴我們您收到了哪些錯誤。 –

+0

看到你的整個代碼會很有用。你可以在這裏粘貼你的JavaScript嗎? – CodePB

+0

你認爲這可能是我不包括我的PHP文件中的地方api? – user1809913

回答

0

要調用谷歌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); 
?> 

這工作,在谷歌回答我一個正確形成,如果簡潔,JSON:

{ 

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

通過適當的API密鑰配置,您應該可以正常工作。檢查通話是否在您的瀏覽器中工作(沒有cookie等 - 一個乾淨的會話,這是file_get_contents()將給您的),並且您的PHP安裝能夠恢復SSL數據(它應該,但讓我們檢查),即

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

應該恢復Google的主頁。

此調用不需要身份驗證(有一個限速,但我認爲這是不可能的,你會作出一切讓你拒之門外所需的調用):

​​

以上將返回非常。複雜的JSON在可能的重音字符現在我想起來了,上面的Header會是這樣更好:

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

好吧,以便消除PHP,但我收到相同的錯誤,因爲你說REQUEST_DENIED。 – user1809913

+0

您正在發出錯誤的呼叫或需要驗證的呼叫(API密鑰)。我給我的答案添加一個「簡單」電話作爲例子。 – LSerni

+0

我不需要在php文件中包含google地方api吧?我知道我做的JavaScript文件,但我不認爲這是必要的,因爲api在JavaScript中是正確的? – user1809913

相關問題