C# 使用webapi
当我试图调用任何api时,都会遇到400错误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
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")