我的API接受这些数据并在邮递员中尝试了它的正常工作:
的http:// {URL} /密码/电子邮件
方法:POST
标题:[{"key":"Accept","value":"application/json","description":""}
, {"key":"Content-Type","value":"application/x-www-form-
urlencoded","description":""}]
正文:仅当我在x-www-form-urlencoded中发送key:value时才有效。
我的IONIC 2代码是:
return new Promise((resolve, reject) => {
let headers = new Headers();
headers.append('Accept', 'application/json');
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let body = new FormData();
body.append('email', email);
let options = new RequestOptions({ headers: headers });
this.http.post(config.API_URL+"/password/email" ,body , options)
.subscribe(res => {
resolve(res.json());
}, (err) => {
reject(err.json());
});
});
我收到错误
POST {URL}/password/email 422 (Unprocessable Entity) polyfills.js:3
我不知道我的代码有什么问题?
答案 0 :(得分:0)
尝试下面的代码,emailId来自哪里?如果它的gloabl变量使用this.emailId。
HTTP请求或响应中的Content-Type标头描述了邮件正文的内容类型。
请求中的Accept标头告诉服务器客户端在响应正文中期望的内容类型
请参阅API,了解所期望的数据类型以及将发送的数据类型。
return new Promise((resolve, reject) => {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let body = JSON.stringify(
{
"emailId": this.emailId
}
);
let options = new RequestOptions({ headers: headers });
this.http.post(config.API_URL+"/password/email" ,body , options)
.subscribe(res => {
resolve(res.json());
}, (err) => {
reject(err.json());
});
});
答案 1 :(得分:0)
我在Laravel API中遇到了同样的问题,那可能是两种问题。
您的授权令牌丢失。尝试在标头上添加授权:
let headers = new Headers();
headers.append('Accept', 'application/json');
headers.append('Content-Type', 'application/x-www-form-urlencoded');
// adding Authorization token in your headers
headers.append("Authorization:", token);
您忘记了根据请求发送一些字段或对象。花一点时间阅读此代码描述
200 ......确定
400 ......反向请求。该请求通常无效。
401 ......未经授权。用户和密码或访问令牌无效。
403 ...禁止。 API访问被阻止或用户被阻止。
404 ......未找到。访问地址不存在。
422 ......不可处理实体。该请求有效,但传递的数据无效。
429 ......许多请求。用户已达到请求限制。
500 ......内部服务器。错误处理请求时发生内部服务器错误