unsupported_grant_type 尝试对用户进行身份验证时出错

unsupported_grant_type error when I try to authenticate a user

我知道有很多关于我要问的问题和答案,但是 none 已经解决了我的问题。

现在,我正在开发一个 angular 5 应用程序,我试图通过向服务器发送 post 来获取身份验证令牌。当我使用 postman 测试连接时没有问题。但是在 angular 我得到以下错误

这是我到目前为止写的,

getAccessToken2() {
let url = "http://api.akilli.tv/oauth/token";

var headers = new HttpHeaders();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
headers.append('Accept', 'application/json');

let urlSearchParams = new URLSearchParams();
urlSearchParams.set('grant_type', 'password');
urlSearchParams.set('username', 'alikamilyagli@gmail.com');
urlSearchParams.set('password', '1234');
urlSearchParams.set('client_id', '2');
urlSearchParams.set('client_secret', 'Q5U9fclient*!secret*!clientsecret*!9SqUaH9sKro');
urlSearchParams.set('scope', '*');

let body = urlSearchParams.toString();

return this.http.post(url, body)
  .subscribe((data: any) => {
    console.log(data);
  });

}

这里是 postman 请求成功的截图

而且我也遇到了 Access-allow-control-origin 问题并通过添加一个名为 "CORS" 的 chrome 插件解决了。有没有另一种更健康的方法来解决这个问题?

提前致谢。

试试这个

const data = 'grant_type=password';
        return this.http.post( url, data,
            {headers: new HttpHeaders({'Accept': 'application/json',
            'Content-Type': 'application/x-www-form-urlencoded'})});