2012-10-08 100 views
0

我的客戶希望我實現一個頁面。在此頁面上,我使用AJAX進行了API調用(如代碼所示)。需要cURL幫助。需要更換阿賈克斯電話

jQuery.ajax({ 
    url: endpoint, 
    type: "POST", 
    cache:false, 
    data: { 
      url:"link-rest/sweepstakes/claim", 
      userId:193298, 
      prizeRank:2, 
      sweepStakeId:186 
      }, 
    dataType: "json", 
    headers: { 
       Authorization:token 
      }, 
    success: function(json){ 
      callback(json); 
      }, 
    error: function(xhr, status, error){ 
      callback(errorHandle(2)); 
      } 
}); 

但現在他想用這個頁面的搜索引擎優化以及。爲此,我必須在PHP中進行API調用。我以前從未與cURL合作過。而在stackoverflow的例子似乎並不適用於我。我安裝了Wamp Server並且php_curl擴展已經激活。所有wamp服務也已重新啓動。這是我試圖實現的。

$json_url = 'link-rest/sweepstakes/claim&userId=193298&prizeRank=2&sweepStakeId=186&Authorization=ams0TGpFek5EazBNekExTmprd01EYz1NVGt6TQ'; 

    $ch = curl_init($json_url); 

    $options = array(
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_HTTPHEADER => array('Content-type: application/json'), 
    ); 

    curl_setopt_array($ch, $options); 

    $result = curl_exec($ch); 
    var_dump(json_decode($result)); 

但是,在我的屏幕上打印的所有內容都是「null」。任何人都可以告訴我我在做什麼錯在這裏?

+0

'cURL'不能使用相對URL。您應該使用以'http://'開頭的完全合格的URL。 – insertusernamehere

+2

感謝你和@Quentin。這是我沒有給出絕對URL的問題。一旦我找到了URL,它就可以很好地工作。再次感謝。 :) –

回答

0

代碼的基本問題是您使用的是相對URI而不是絕對URI。

你似乎也試圖提供JSON編碼的請求,但是阿賈克斯似乎使用標準格式編碼,只希望JSON在響應

一個更根本的問題是,您使用的捲曲首先。 link-rest/sweepstakes/claim大概是通過PHP處理的,所以你應該將你想調用的位重構爲一個庫,然後從你正在編寫的函數中調用該庫。 (將處理Ajax請求的頁面轉換爲一個簡單的View)。