无法在Symfony2 Angular2中接收请求参数

problem

i tried with $request->request->all() //var_dump output:array(0){}

symfony code

public function registerAction(Request $request) {

   var_dump($request->request->all());die;
  }

Angular2 service

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

{"name{"email":"abc@gmail.com","username":"abc","password":"","repeatpassword":""}}:

solution that works

$data = json_decode(file_get_contents('php://input'), true);

// able to get paramters //get,or //post

can anyone suggest why request doesn't print some values.

  • here im posting form from angular2.

Symfony uses different containers for Post and Get. Try this way.

# Post
$request->request->all()

# Get
$request->query->all() 
$this->getRequest()->request->all()

solution that worked for me

i changed headers

from

  private headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'});

To

 private headers=new Headers({ 'Content-Type': 'application/json' });
  • now im able to recieve data.