我是个初学者。我在客户端编写了一个由AngularJs GUI和服务器端的PHP组成的测试应用程序。
这是处理请求的角服务。
myApp.factory('Book', ['$resource', 'API_URL', function($resource, API_URL){
return $resource(API_URL + '/books/:bookId', {bookId: '@bookId'}, {
get: { method: 'GET', isArray:true },
update: { method: 'PUT'},
save: { method: 'POST'},
delete: {method:'DELETE'},
});
}]);当我从角度应用程序提交一本书时,我可以在Slim中通过
$post_a = json_decode($app->request->getBody());
//$post_b = $app->request->post(); //this would be empty当我使用邮递员并执行一个帖子时,我可以在Slim中使用
//$post_a = json_decode($app->request->getBody()); // this would be empty
$post_b = $app->request->post();我不明白为什么会有这种区别。你能解释一下吗?
在这两种情况下,我是不是只想用$app->request-> post ()来捕捉帖子呢?为什么只有$app->request->getBody()才能捕获来自角的帖子?
发布于 2015-01-09 15:50:30
$app->request->post()方法检索在application/x-www-form-urlencoded请求中提交的键/值数据。如果请求使用不同的内容类型(例如application/json),则可以使用$app->request->getBody()方法检索原始请求主体,并根据需要对其进行解码。如果你还有其他问题,请告诉我。
发布于 2016-09-01 06:38:38
你仍然可以用
$post_b = $app->request->post()
在斯利姆。
只要您从html表单(AngularJS)调用此REST服务,就可以将数据传递为格式化的表单值而不是JSON。如果在AngularJS中有JSON格式的数据,则必须首先将其转换为表单。下面是如何调用此REST服务的示例:
Object.toparams = function ObjecttoParams(obj) {
var p = [];
for (var key in obj) {
p.push(key + '=' + encodeURIComponent(obj[key]));
}
return p.join('&');
};
$http({
method: 'POST',
url: url,
data: Object.toparams(myobject),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
myobject是将要创建的JSON格式的数据
发布于 2015-10-06 10:23:26
,谢谢,Josh..Your的答案对我有用。
应采取以下步骤:
1.您需要在raw选项卡下以json格式发送请求,如下所示:
{"username":"admin","password":"admin"}2.您需要在标题中将Content-Type设置为application/json。
就这样,它会起作用的。
https://stackoverflow.com/questions/27859405
复制相似问题