Ошибка: 422 (необрабатываемый объект). угловой4

Я пытаюсь опубликовать данные из Angular4 на локальном хосте: 4200 в API на локальном хосте: 8000. Я отлично работаю с Postman, но не с Angular. Затем я получаю:

Не удалось загрузить ресурс: сервер ответил со статусом 422 (Unprocessable Entity)

Это служба, которая отправляет сообщения в API:

@Injectable()
export class ApiService {
    constructor(private http: Http) { }
    login(username: string, password: string): Observable<Response>{
        const url = 'http://localhost:8000/login';
        const json = JSON.stringify({username: username, password: password});
        const headers: Headers = new Headers();
        headers.append('Content-Type', 'application/json; charset=UTF-8');
        return this.http.post(url, json, headers )
            .map(res => res.json());
    }
}

Это код, который запускает метод

   logIn(user: string, password: string){
      this.apiService.login(user, password).subscribe(
          data => console.log(data),
          error => console.log(error)
      );
    }


person Skvupp    schedule 20.09.2017    source источник
comment
почему вы определили метод внутри конструктора?   -  person Alejandro Camba    schedule 20.09.2017
comment
Я не. Я определяю объект http. Это угловой способ сделать это.   -  person Skvupp    schedule 20.09.2017
comment
я вижу извините я не видел { }   -  person Alejandro Camba    schedule 20.09.2017
comment
Ты нашел решение @Skvupp   -  person Ben Racicot    schedule 22.10.2017
comment
Да, это была проблема с сервером при использовании фреймворка Lumen. Код Angular был правильным.   -  person Skvupp    schedule 29.10.2017
comment
stackoverflow.com/questions/39807666/   -  person Sara Vaseei    schedule 15.11.2017


Ответы (2)


Код состояния 422 (Unprocessable Entity) означает, что сервер понимает тип содержимого объекта запроса (поэтому код состояния 415 (Unsupported Media Type) не подходит), а синтаксис объекта запроса правильный (таким образом, 400 (Bad Request). ) недопустимый код состояния), но не смог обработать содержащиеся в нем инструкции.

Например, это состояние ошибки может возникнуть, если тело XML-запроса содержит корректные (т. е. синтаксически правильные), но семантически ошибочные XML-инструкции.

person Amr Abdalrahman    schedule 31.03.2018

Я также получаю ту же проблему при использовании 'angular-in-memory-web-api'. Проблема заключалась в том, что при создании InMemoryDbService я не добавил первичный ключ, такой как id. после добавления идентификатора в экземпляр createDb он отлично работает для меня.



import { Injectable } from '@angular/core';
import { InMemoryDbService } from 'angular-in-memory-web-api';

@Injectable({
  providedIn: 'root'
})
export class DataService implements InMemoryDbService {

  constructor() { }
  createDb() {

    let users = [
      {**id: 1**, username: "Sandy", firstname: "Sandesh", lastname: "K", password: 
        "XXXX", description: "Hi, Going to save data", gender: "Male" }
    ];
    return { users };

  }
}

person Sandesh Kumar    schedule 19.04.2020