这让我发疯。我正在尝试向我的api服务器发送一个简单的请求并附加标头。首先是给我显示此临时标题的消息,然后它将在下一个请求时失败
Provisional headers are shown
Accept: application/json, text/plain, */*
Access-Control-Allow-Credentials: true
Cache-Control: no-cache
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Pragma: no-cache
Referer: https://mywebsite.com/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
如果我在拦截方法中添加以下数据,则会收到错误消息。
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({ headers: request.headers.set('Access-Control-Allow-Credentials', 'true') });
request = request.clone({ headers: request.headers.set('Cache-Control', 'no-cache') });
request = request.clone({ headers: request.headers.set('Pragma', 'no-cache') });
request = request.clone({ headers: request.headers.set('Expires', 'Sat, 01 Jan 2000 00:00:00 GMT') });
return next.handle(request);
}
如果我删除它并且不添加标头,那么我不会收到错误消息,但是最终我将需要在标头中发送其他数据,例如authtoken和用户ID。 为什么在附加到标题时出现此405错误?
答案 0 :(得分:1)
大约一个月前,我遇到了同样的问题。
您需要为“选项”动词创建一个基本的http ok响应。将其放在您的基本api控制器中。首先发送选项请求,并且需要一个正确的响应回调,然后才能继续将选项传递给API
public HttpResponseMessage Options()
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
}
答案 1 :(得分:0)
尝试添加 标头中的API密钥(例如:x-my-api-key) 标头中的API值(例如:7e807890-c777-466a-897)
希望这可以帮助...