[英]{“error”:“unsupported_grant_type”} for angular call
My api post call for retrieving a jwt token responds with 400 error. 我的用于检索jwt令牌的api调用响应为400错误。 Here is my api angular call.
这是我的api角度通话。 I tried with URLSearchparams too.
我也尝试了URLSearchparams。
authenticateUser(userid: string, password: string) {
// var authorization_grant = "password";
// let body = new URLSearchParams();
// body.append('username', userid);
// body.append('password', password);
// body.append('grant_type', authorization_grant);
let body = 'userName=' + userid+ '&password=' +password +'&grant_type=password';
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
headers.append('Access-Control-Allow-Origin', '*');
let options = new RequestOptions({ headers: headers });
return this.http.post(this.config.apiBaseUrl + '/token', body, options).retry(3).map((res: Response) => {
if (res.status == 200) {
this.validatedUser = res.json();
localStorage.setItem("access_token", this.validatedUser.access_token);
}
return this.validatedUser;
})
}
OK, after investigating the traffic in Fiddler tool, I compared the headers when called from postman vs angular. 好的,在调查了Fiddler工具中的流量之后,我比较了从邮递员和有角度的人调用时的标头。
On Client-Side: I removed line headers.append('Access-Control-Allow-Origin', '*'); 在客户端:我删除了header.append('Access-Control-Allow-Origin','*'); from my code which resolved this issue.
从我的代码解决了这个问题。
On Server-Side Most importantly I moved app.UseCors(CorsOptions.AllowAll) line of code on top of app.UseOAuthAuthorizationServer where I generate token in my startup.cs. 在服务器端最重要的是,我将app.UseCors(CorsOptions.AllowAll)代码行移到了app.UseOAuthAuthorizationServer顶部,在我的startup.cs中生成了令牌。
Thanks @jps, @biswajit-rout and @Ruard Van Elburg for looking into it. 感谢@ jps,@ biswajit-rout和@Ruard Van Elburg对其进行调查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.