我尝试使用来自前端(在我的情况下为Angular 2)的http post请求到后端(asp.net core web api)进行身份验证。当我发送请求时它正在进行并且退回状态200确定。但是在那之后,我试图访问我只能在身份验证后才能看到的数据,它会抛出404代码(未经授权从服务器)。服务器和前端侧位于不同的端口上
虽然当我在Postman中执行此步骤时,似乎没问题。 首先我执行http post请求以获取访问权限:例如post
{{1} } http://localhost:5000/api/account/login
和其他这样简单地执行http get请求:body: username:Admin password: admin
get
并且这是有效的**(例如在邮递员和高级休息客户端中)< STRONG>。
但是在Angular 当我试图做同样的动作时,似乎 Angular忘了我已经完成了http post 并且说:“伙计,你无权访问信息!“
虽然在网络标签和邮差中,http帖子返回状态200确定
伙计们,有人请帮忙,因为这是一个恶意项目,我必须在大约10天内完成。任何帮助。谢谢。
以下是代码:
data.service.ts 文件,其中有post和get请求(getWorks()用于从RestApi获取数据,login()用于登录用户):
http://localhost:5000/api/work
login.component.ts 文件获取用户名和密码,处理它,并发送到data.service.ts,其中方法getWorks()和login()请求它到服务器:
getWorks(): Observable<IWork[]>{
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.get(this._baseUrl + 'work' ,{ headers: headers })
.map((result: Response) => {
return console.log(result);
})
.catch(this.handleError);
}
login(user : User) {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post(this._baseUrl + 'account/login', JSON.stringify(user), { headers: headers })
.map((result: Response) => {
return result.json();
}).catch(this.handleError);
}
更新1(感谢@ArunKumaresh)但仍然无效
这是一个用户类:
login() : void {
let _authenticationResult: OperationResult = new OperationResult(false, '');
this.dataService.login(this._user).subscribe((result: any) => {
_authenticationResult.succeeded = result.succeeded;
_authenticationResult.message = result.message;
if(_authenticationResult.succeeded) {
this.notificationService.printSuccessMessage('Welcome ' + this._user.username + '!');
localStorage.setItem('user', JSON.stringify(this._user));
this.router.navigate(['/list']);
} else {
this.notificationService.printErrorMessage(_authenticationResult.message);
}
}),
error => console.error('Error: ' + error);
}
getData() {
this.dataService.getWorks().subscribe(result => {
this.works = result;
this.subscribeToData();
}, error => {
this.notificationService.printErrorMessage('Authentication reqired');
this.utilityService.navigateToSignIn();
console.error('Error: '+ error); });
}
data.service.ts
export class User{
username: string;
password: string;
constructor(username: string, password: string){
this.username = username;
this.password = password;
}
}
更新2(感谢同一个人:))但仍然没有
login(user : any) {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post(this._baseUrl + 'account/login', JSON.stringify(user), { headers: headers })
.map((result: Response) => {
return result.json();
}).catch(this.handleError);
}
更新3.感谢所有人,为了帮助解决这个问题,特别是NotBad4U,男人真的帮我解决了这个问题。我欢迎你们所有的帮助,你们所有人 Here's the right answer