桌面应用程序是否需要 HTTP 预检请求?
Do Desktop apps need HTTP preflight requests?
我正在开发一个需要从第三方获取信息的应用 API。我一直在用 Vuejs 将它开发成一个 Web 应用程序。对于我尝试使用 axios、jquery 和 fetch API 的请求,但我在预检请求方面遇到了问题,似乎 API 没有正确处理 OPTIONS 请求它向我抛出一个 405 错误(我通过 Postman 在同一个 url 上发出了 GET 请求并且它正常工作,我还在 firefox 网络面板上编辑了一个 OPTIONS 请求以成为 GET 请求并且它返回了 200 状态) .
现在我正在考虑放弃 Web 应用程序的想法并将其作为桌面应用程序工作,但我需要知道预检请求是否也会成为此类应用程序的默认行为。
感谢您的关注!
不,CORS 预检请求是由浏览器发出的,并且由于浏览器安全模型的缘故是必需的。它们不会被桌面应用程序使用。
您可以使用 curl、postman 等轻松地对此进行测试。听起来您尝试过这个,但您描述的细节不对。不要将任何内容更改为 GET
。使用您尝试发出的实际请求,但在浏览器上下文之外执行。如果 API 响应正确,那么它应该可以在桌面应用程序中运行。
我正在开发一个需要从第三方获取信息的应用 API。我一直在用 Vuejs 将它开发成一个 Web 应用程序。对于我尝试使用 axios、jquery 和 fetch API 的请求,但我在预检请求方面遇到了问题,似乎 API 没有正确处理 OPTIONS 请求它向我抛出一个 405 错误(我通过 Postman 在同一个 url 上发出了 GET 请求并且它正常工作,我还在 firefox 网络面板上编辑了一个 OPTIONS 请求以成为 GET 请求并且它返回了 200 状态) . 现在我正在考虑放弃 Web 应用程序的想法并将其作为桌面应用程序工作,但我需要知道预检请求是否也会成为此类应用程序的默认行为。 感谢您的关注!
不,CORS 预检请求是由浏览器发出的,并且由于浏览器安全模型的缘故是必需的。它们不会被桌面应用程序使用。
您可以使用 curl、postman 等轻松地对此进行测试。听起来您尝试过这个,但您描述的细节不对。不要将任何内容更改为 GET
。使用您尝试发出的实际请求,但在浏览器上下文之外执行。如果 API 响应正确,那么它应该可以在桌面应用程序中运行。