2016-08-03 2 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

당신이 무슨 일을하는지 아약스 인 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 알프레도의 답변이 도움이 되었다면 동의하십시오. – Opal