C# 使用webapi

C# 使用webapi,c#,angular,api,C#,Angular,Api,当我试图调用任何api时,都会遇到400错误 checkLogin(userInput): Observable<any> { return this.http.get('https://***/testhandler').pipe( map(this.extractData), catchError((error: HttpErrorResponse) => { let errorMessage = ''; if (error

当我试图调用任何api时,都会遇到400错误

checkLogin(userInput): Observable<any> {
 return this.http.get('https://***/testhandler').pipe(
    map(this.extractData),
    catchError((error: HttpErrorResponse) => {
        let errorMessage = '';
        if (error.error instanceof ErrorEvent) {
            // client-side error
            errorMessage = `Error: ${error.error.message}`;
        } else {
            // server-side error
            errorMessage = `Error Code: ${error.status}\nMessage: ${error.statusText}`;
        }
        // window.alert(errorMessage);
        return of("");
    })
    // catchError(this.handleError<any>('addProduct'))
);`
我得到400错误,我的服务器端配置

if (Request.HttpMethod == "OPTIONS")
{

    Response.AddHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
    Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
    Response.AddHeader("Access-Control-Max-Age", "1728000");
    Response.AddHeader("Access-Control-Allow-Credentials", "true");
    Response.AddHeader("Access-Control-Allow-Headers",
        "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With,
         Content-Type, Access-Control-Request-Method,
         Access-Control-Request-Headers,app-auth-fetch-qualifier");
    Response.End();
}
else
{
    Response.AddHeader("Access-Control-Allow-Credentials", "true");
}
和我的配置文件-

 <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
    <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS" />
    <add name="Access-Control-Max-Age" value="1728000" />
 </customHeaders>
然后请求成功


让我知道我遗漏了什么或需要做哪些更改

可能重复的

这是安全的一部分,你不能这样做。如果要允许凭据,则访问控制允许源站不能使用*。您必须指定确切的协议+域+端口。有关参考信息,请参见以下问题:

访问控制允许源通配符子域、端口和协议 使用凭据进行跨源资源共享 此外,*过于宽容,会妨碍凭证的使用。因此,将或设置为允许原始标头。

第二个
AddHeader(“访问控制允许标头”
看起来很粗略。
 <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
    <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS" />
    <add name="Access-Control-Max-Age" value="1728000" />
 </customHeaders>
'app-auth-fetch-qualifier': localStorage.getItem("tokenId")