通过angular 8客户端对用户进行身份验证时发生未知错误

时间:2019-08-14 04:47:20

标签: .net angular api

通过angular连接到Web API调用时出现未知错误。

我尝试了一切,它在邮递员中正常工作,但在本地主机上没有Angular 8

login(username: string, password: string) {const httpOptions = {
        headers: new HttpHeaders(
        { 
            "Authorization": "Basic " ,
            "Access-Control-Allow-Origin":"*",
           'content-type':'application/json'
        })
    }
//return this.http.post<any>(`${config.apiUrl}/users/authenticate`, { username, password })
   return this.https.post<any>(`https://localhost:53595/api/users/authenticate`, { username, password },httpOptions )
        .pipe(
            map(user => {
            // login successful if there's a jwt token in the response

            if (user && user.token) {
                // store user details and jwt token in local storage to keep user logged in between page refreshes
                localStorage.setItem('currentUser', JSON.stringify(user));
                this.currentUserSubject.next(user);

            }


            return user;
        }));
}

2 个答案:

答案 0 :(得分:0)

正如您所说的,它是从 Postman 而不是从 Localhost 工作的,那么我怀疑它是 CORS错误About CORS

您肯定会得到类似的东西。

  

没有访问控制权限来源

这意味着不允许您托管应用程序的源服务器向服务器发出任何请求。

据我所知,此错误需要从服务器/ API 端进行处理。

或者您可以使用chrome扩展名禁用它,可以获取here


有关如何在不同服务器上处理CORS的更多信息,如下所示:

PHP Server

.NET Server

JAVA Server

答案 1 :(得分:0)

如果它是.net核心,请进入Startup.cs,并通过https服务后端和前端,并启用CORS

public void ConfigureServices(IServiceCollection services)
{
...
      services.AddCors();
...
}


   public void Configure(IApplicationBuilder app)
   {
    ...
      app.UseCors(builder =>
            builder.WithOrigins("YOUR_FRONTEND_URL")
                   .AllowAnyHeader()
                   .AllowAnyMethod()
                   .AllowCredentials());
    ...
    }

Source