Javascript 如何使用oAuth2令牌身份验证发出post请求

Javascript 如何使用oAuth2令牌身份验证发出post请求,javascript,angular,typescript,ionic-framework,ionic2,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.appen

此代码不起作用:

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();
        });
    });
}
选项“”401(未经授权)


未能加载“”:飞行前的响应具有无效的HTTP状态代码401。

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

this.http.post('url', body, {headers: headers})
我不认为您正在试图发布到
http://url
因为这没有任何意义

将其更改为以下内容

this.http.post(url, body, {headers: headers})
在如下位置定义您的url:

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

希望这能有所帮助。

您需要在服务器端配置CORS。您的意思是什么?研究CORS,您会理解的。我正在chrome上安装CRO,这不是问题所在。问题是如何在post请求中的头中发送令牌oauth2。问题是CORS。飞行前选项401始终是CORS:我像您一样添加url我得到错误(索引):1无法加载http://.../api/: 飞行前的响应具有无效的HTTP状态代码401。