ionic 2 POST请求返回422(不可处理的实体)

时间:2017-11-05 20:36:53

标签: angular typescript ionic2

我的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 

我不知道我的代码有什么问题?

2 个答案:

答案 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 ......内部服务器。错误处理请求时发生内部服务器错误