2016-08-03 9 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ライブラリを含めましたか?エラーが報告されていますか?あなたはこれをWebサーバー上で実行していますか? –

+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

関連する問題