在学习教程时,我在尝试将数据发布到api时遇到错误。
我得到的错误:
加载资源失败:服务器响应状态为422(无法处理的实体)
服务代码.js文件
import 'rxjs/add/operator/toPromise';
import {Injectable} from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
import {CONFIG} from './../config/config';
import { RequestOptions, Headers, } from '@angular/http';
import { headersToString } from '../../../node_modules/@types/selenium-webdriver/http';
@Injectable()
export class AuthService {
private _options = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };
constructor(private http: HttpClient) {}
register(name: string, email: string, password: string) {
const headers: Headers = new Headers({ 'Content-Type': 'application/json' });
return this.http.post(`${CONFIG.API_URL}/register`, { name: name, email: email, password: password}, this._options)
.toPromise()
.then((response) => {
console.log(response);
});
}
}
我找不到该问题的任何解决方案,因此将不胜感激。
答案 0 :(得分:1)
似乎更多是服务器端问题,而不是客户端代码问题。
Acc to defination 422:服务器了解请求实体的内容类型(因此 415不支持的媒体类型状态代码不合适),并且 请求实体的语法正确(因此状态为400错误的请求) 代码不合适),但无法处理其中包含的内容 说明。
检查网络面板,以验证是否传递了格式正确的JSON并设置了正确的标头。
尝试通过检查异常并调试流程来在服务器端调试问题。
还显示要传递给服务器的JSON,以获取确切的问题并提及后端框架。