Angular 2忽略对RestApi

时间:2017-05-05 12:02:53

标签: angular authentication asp.net-web-api http-post

我尝试使用来自前端(在我的情况下为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

0 个答案:

没有答案