目前我遇到了对API端点的GET请求有问题。 在非常罕见的情况下,OPTIONS请求将永久显示为待处理(在Google Chrome中),因此GET请求无法执行。在99%的请求中,一切正常,但有时却没有。
以下是我的工作:
我尝试通过GET调用以下C#API端点:
[HttpGet]
[Route("qr/{QrCode}")]
public IHttpActionResult GetByQr(string QrCode)
{
return Ok(DeserializeQrCode(QrCode)); // this is simplified...
}
为此,我使用了fetch方法:
fetch('<baseUrl>/qr/<qrCode>', {
method: 'GET',
headers: {
'Content-Type': 'application/json;charset=UTF-8',
'Accept': 'application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
}
})
.then(console.log.bind(console))
.catch(console.error.bind(console));
通常,我会看到OPTIONS请求,然后是GET请求,返回所需的值。但是,如前所述,有时OPTIONS请求将永久保留。
在Visual Studio 2015(我用于调试)中,我可以看到选项请求,但没有进一步。
关于可能会发生什么的任何想法?为什么OPTIONS请求保持挂起状态?
非常感谢! 波多黎各
编辑:这是一个.NET 4.5.2 WebApi项目。