获取 api 预检请求失败
Posted
技术标签:
【中文标题】获取 api 预检请求失败【英文标题】:Fetch api preflight request failing 【发布时间】:2018-05-21 02:17:36 【问题描述】:我正在尝试从公共 API 发出 GET 请求,但似乎无法弄清楚为什么 cors 预检请求不断失败。
Response for preflight has invalid HTTP status code 404
我已经进行了一些搜索,似乎这需要在服务器端进行更改,但我只是想确保我没有做错任何事情。我正在使用以下代码:
try
let guideData = await fetch(guideUrl,
method: 'GET',
headers:
Authorization: `Bearer $json.access_token`,
);
catch(err)
console.log("Failed to fetch data", err);
我已经使用 Postman 和 Hurl 进行了测试,似乎都可以正常工作,但我无法让它在我的客户端上工作。
【问题讨论】:
从POSTMAN
进行命中时尝试OPTIONS
方法
【参考方案1】:
当您从 Postman 和 Curl 发送 http 请求时,两者的行为不像 Web 浏览器那样。在您的情况下,您使用的是运行 js 的网络浏览器。代码本身看起来不错,但您需要对令牌进行编码以使授权在发送时起作用。
问题肯定出在服务器端,要点是当您发送OPTIONS
时,它会告诉您是您的问题还是服务器的问题。很有可能来自您发布的回复,肯定是 CORS。
【讨论】:
以上是关于获取 api 预检请求失败的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 2:使用 [Authorize] 对 API 的 Ajax 调用使预检请求失败
在 Angular 9 + Asp.net Core Web API 中启用 Windows 身份验证后,预检(选项)请求失败