2016-08-03 125 views
1

我是後臺的新手,試圖構建REST API。我無法從ajax調用中檢索我的請求數據。REST API學習曲線

<?php 
$logfile = fopen("log.txt", "w"); 
fwrite($logfile, "testing\n"); 

$method = $_SERVER['REQUEST_METHOD']; 
$request = explode('/', trim($_SERVER['PATH_INFO'],'/')); 
$input = json_decode(file_get_contents('php://input'),true); 
$req_dump = print_r($input, true); 
fwrite($logfile, $req_dump . "\n"); 

fclose($logfile); 
?> 

我的電話是這樣的:

$.ajax({ 
    dataType: "json", 
    type: "GET", 
    url: "http://example.com/api.php", 
    data: {data:"data"}, 
    success: function(){ console.log('success'); } 
}); 

我log.txt文件只是被「測試」一文,但沒有指示傳遞的對象{數據:「數據」}。我在這裏跳過哪些步驟?

+2

你看過瀏覽器開發工具中的AJAX請求/響應了嗎?你有沒有在項目中包含jQuery庫?是否有任何錯誤報告?你在網絡服務器上運行這個嗎? –

+0

嘗試使用類似https://www.getpostman.com/ – cmnardi

+0

的工具調用此php腳本,並刪除腳本 – cmnardi

回答

1

你在做什麼的AJAX是一種get request和對象正在發送數據作爲URL查詢字符串:/api.php?data=data,發送和PHP中的查詢字符串的數據都存儲在$_GET

試試這個:

<?php 

$logfile = fopen("log.txt", "w"); 
fwrite($logfile, "testing\n"); 

$method = $_SERVER['REQUEST_METHOD']; 
//$request = explode('/', trim($_SERVER['PATH_INFO'],'/')); 
$input = json_encode($_GET,true); 
$req_dump = print_r($input, true); 

fwrite($logfile, $req_dump . "\n"); 

fclose($logfile); 
+0

Alfredo的關閉php標記'?>',該功能非常完美!謝謝你的幫助! – user1981130

+0

@ user1981130,如果Alfredo的回答很有幫助,請接受它。 – Opal