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