【发布时间】:2016-03-27 21:09:44
【问题描述】:
我一直在使用我的服务器,目前找不到解决方案。我希望你能帮助我。
我有一个服务,我想从那里发送一个 POST 请求。该服务看起来像:(我想使用一个服务,因为我需要从不同的站点调用它)
angular.module('schwimmfestivalApp')
.service('groupService', function($http) {
// AngularJS will instantiate a singleton by calling "new" on this function
var url = '../../../server/func/getGroups.php';
var createGroupUrl = '../../../server/func/setGroup.php';
var groupCategoryUrl = '../../../server/func/getGroupCategory.php';
this.getGroups = function() {
return $http.get(url, {cache: false}).then(response => {
console.log('Groups: ' + JSON.stringify(response.data));
return response.data;
});
};
this.createGroup = function(group) {
return $http.post(createGroupUrl, {'group': group}, {headers: {'Content-Type': 'application/x-www-form-urlencoded'}}).then(response => {
console.log('Group to Create: ' + group);
console.log('Resonse: ' + JSON.stringify(response));
console.log('Create Group: ' + response.data);
return response.data;
});
};
});
getGroups() 方法工作正常。
我的 setGroups() 方法的服务器代码(不是我写的)如下所示:
<?php
require_once '../connect/connect_db.inc';
require_once '../class/gruppe.php';
require_once '../func/getHeader.php';
$db = getConnection();
getHeader('json');
if(isset($_POST['group'])){
$idGruppe = 0;
//$gruppeJson = json_decode(file_get_contents("php://input"));
$gruppeJson = json_decode($_POST['group']);
$sql = "INSERT INTO gruppe ";
$sql .="( name, gruppe_typ_id) VALUES ('";
$sql .= $gruppeJson->{'name'} . "', '";
$sql .= $gruppeJson->{'idKategorie'};
$sql .=" ')";
if ( $db -> query($sql)) {
$idGruppe = $db -> insert_id ;
$selectGroup = "SELECT gruppe.id, gruppe.name, gruppe.gruppe_typ_id AS idKategorie, gruppe_typ.name AS kategorie ";
$selectGroup .= "FROM gruppe, gruppe_typ ";
$selectGroup .= "WHERE gruppe.gruppe_typ_id = gruppe_typ.id AND gruppe.id = " . $idGruppe;
if ($result = $db -> query($selectGroup)) {
while($row = $result->fetch_assoc()) {
$gruppe = new gruppe();
$gruppe->id = $row['id'];
$gruppe->name = $row['name'];
$gruppe->idKategorie = $row['idKategorie'];
$gruppe->kategorieName = $row['kategorie'];
}
echo json_encode($gruppe);
} else {
echo $db->error;
echo "</br> " . $selectGroup;
}
} else{
}
}
我已经阅读了一些关于你必须使用 file_get_contents 读取数据的内容。但我没有到达那里。 if(isset($_POST['group'])) 不验证为真。
那么我如何构建我的请求才能进入这个 if ? 你对我有什么建议吗?
提前致谢 多米尼克
【问题讨论】:
-
在您的 php 文件中显示
var_dump($_POST)并在您从 angular 调用 post 时检查 firebug 中的响应。 -
好吧,我按照你说的做了,我总是得到一个空数组或 JSON,这取决于我设置的头文件。