使用普通的 html 表单,我可以通过向/api/tasks/insert/发送 POST 请求来添加新任务 POST 数据包括任务的 $name 和 $description。 但是,当我使用 Angular 将数据推送到 PHP 中的 REST API 时,只发送了一个 POST 请求并在数据库中创建了一个空行。 这意味着没有传递 POST 变量,即名称和描述。 我做错了什么?
最近几个小时我一直被困在这个问题上。我已经检查了无数教程并且非常确定语法。我在 PHP 中的后端 REST api 工作正常。
var res=$resource('http://localhost/api/tasks/insert/',{},
{
createTask:{method:'POST'}
});
postData={name:"Hello",description:"DescBaby"}
res.createTask({},postData);
//res.createTask(postData); tried this also, but doesn't work
我根据评论尝试的另一种变体是:
res.createTask({name:"TestName", description:"descBaby"}).$promise.then(function(value)
{
console.log("Success"); //I get success in console.
},function(errResponse)
{
console.log("Error");
});
Angular 不会给我任何错误。只需向 url 发送一个空白的 POST 请求。
编辑: 我在 Chrome 的网络 Pane 中检查了数据是否已发送,事实证明它正在发送。 但是,在响应中它显示了这个:
Undefined index: name in XYZ.php line ABC.
上面指向的行是我的 PHP 中的以下行:
$obj->InsertTask($_POST['name'],$_POST['description']);
最佳答案
感谢我的一个 friend ,我终于让代码运行起来了。问题不在于我的 Angualar 代码,而在于 php 代码。
事实证明我无法将 POST 数据读取为 $_POST[]。 file_get_contents 应该在数据通过 JSON 负载而不是通过请求参数发送的情况下使用!
关于javascript - 使用 AngularJS $resource 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21951210/