问题
我尝试使用$ request-> request-> all()// var_dump输出:array(0){}
symfony代码
public function registerAction(Request $request) {
var_dump($request->request->all());die;
}
Angular2服务
export class UserRegistrationService {
constructor(private http: Http) { }
private headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'});
private insertdataUrl =
'http://localhost/abc/web/app_dev.php/api/v1/register-user';
/* create new user */
create(name: string): Promise<UserDetails> {
return this.http
.post(this.insertdataUrl, JSON.stringify({name: name}), {headers: this.headers})
.toPromise()
.then(res => res.json().data as UserDetails)
.catch(this.handleError);
}
FORMDATA
{&#34; {名称&#34;电子邮件&#34;:&#34; abc@gmail.com",&#34;用户名&#34;:&#34; ABC&#34 ;, &#34;密码&#34;:&#34;的&#34;&#34; repeatpassword&#34;:&#34; &#34;}}:
有效的解决方案
$data = json_decode(file_get_contents('php://input'), true);
//能够获得参数//获取或//发布
任何人都可以建议为什么请求不会打印一些值。
答案 0 :(得分:1)
Symfony为Post和Get使用不同的容器。试试这种方式。
# Post
$request->request->all()
# Get
$request->query->all()
答案 1 :(得分:0)
$this->getRequest()->request->all()
答案 2 :(得分:0)
对我有用的解决方案
我更改了标题
这
private headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'});
要
private headers=new Headers({ 'Content-Type': 'application/json' });