Ответ не возвращается должным образом - PullRequest
0 голосов
/ 27 марта 2019

Когда я делаю вызов API, я получаю обратно 200, но ответ возвращает html, и ошибка, которую я получаю в консоли, является ошибкой Http во время синтаксического анализа для http://moviereview.test/moviereview/api/v1/public/login?email=conor@testing.com&password=name" ответ в формате json, может кто-то сказать, почему это я знаю, что это плохая практика - отправлять пароль в URL-адресе. Я просто пытаюсь заставить ответ работать должным образом, а затем устранять любые проблемы безопасности, когда я запускаю его в почтальоне, он возвращает его в виде JSON

/*Login Component*/
onSubmit() {
  this.api.login(this.user.email, this.user.password).subscribe(
    data => {
        this.user = data;
        localStorage.setItem('currentUser', JSON.stringify(this.user));
    });
 }
}
/*Login Service*/
  login(email: string, password: string) {
                const httpOptions = {
                  headers: new HttpHeaders({
                    'Content-Type':  'application/json'
                  })
                };
                return this.http.post<any>(this.env.LOCAL_ENDPOINT + '/login?email=' + email + '&password=' + password, httpOptions);
            }

enter image description here

enter image description here

enter image description here

1 Ответ

3 голосов
/ 27 марта 2019

Вы передаете HttpOptions в качестве тела в запросе.Второй параметр метода post в http-клиенте - это тело запроса.Для входа в систему вы должны использовать почтовый метод и передать адрес электронной почты и пароль в теле запроса, как показано ниже:

/*Login Service*/
login(email: string, password: string) {
            const requestBody = {
                email: email,
                password: password
            };
            const httpOptions = {
              headers: new HttpHeaders({
                'Content-Type':  'application/json'
              })
            };
            return this.http.post<any>(this.env.LOCAL_ENDPOINT + '/login', requestBody, httpOptions);
        }
...