如何使用oAuth2令牌认证进行发布请求

时间:2018-02-12 08:13:08

标签: javascript angular typescript ionic-framework ionic2

此代码不起作用:

createRoute(FormRoute) {
    var body = "&name=" + FormRoute.name + "&description="+ FormRoute.description ;
    var headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded' );
    headers.append('Authorization',  'oauth ' + localStorage.getItem("access_token"));
    return new Promise((resolve, reject) => {
        this.http.post('url', body, {headers: headers})
        .toPromise()
        .then((response) =>
        {
            var res = response.json();
            console.log(res);
            resolve(response.json());
        })
        .catch((error) =>
        {
            var err = error.json();
            console.error("err");
            console.error(err["error_description"]);
            let alert = this.alert.create({
              title: 'Error',
              subTitle: err["error_description"],
              buttons: ['OK']
            });
            alert.present();
        });
    });
}

选项' http://url' 401(未经授权)

无法加载' http://url':预检的响应包含无效的HTTP状态代码401.

1 个答案:

答案 0 :(得分:0)

我认为以下代码行是罪魁祸首。

this.http.post('url', body, {headers: headers})

我认为您没有尝试发布到http://url,因为它没有任何意义。

将其更改为以下内容。

this.http.post(url, body, {headers: headers})

在某处定义您的网址:

var url = 'http://httpbin.org/'

希望这有帮助。