George Edwards
George Edwards

Reputation: 9229

CRUD POST issues

I am building out the front end of my MEAN project. My Server side works fine, so if I send a post request to local host, with firstName, lastName, email and password, I get a success response. enter image description here

Here is my function in Angular:

  signUp(user) {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    return this._http
      .post('/signup', JSON.stringify({ user }), { headers })
      .map(res => res.json())
      .map((res) => {
        console.log(JSON.stringify({ user }));
        return res.success;
      });
  }

Unfortunately this just returns a success: false parameter. An example test spat the console log out as:

{"user":{"firstName":"fghnjmkcvbnm","lastName":"dfghjk","email":"[email protected]","password":"fghjk12345456"}}

Any ideas why this isn't working?

Upvotes: 0

Views: 58

Answers (1)

Thierry Templier
Thierry Templier

Reputation: 202256

In your screenshot, you use application/x-www-form-urlencoded for the content type.

I would refactor your code this way:

signUp(user) {
  let headers = new Headers();
  headers.append('Content-Type', 'application/x-www-form-urlencoded');

  let user = new URLSearchParams();
  user.set('email', 'some email');
  user.set('password', 'some password');
  user.set('firstName', 'first name');
  user.set('lastName', 'last name');

  return this._http
    .post('/signup', user.toString(), { headers })
    .map(res => res.json())
    .map((res) => {
      console.log(JSON.stringify({ user }));
      return res.success;
    });
}

Upvotes: 1

Related Questions