axios post get 方法都会先 发送 OPTIONS 我想把这个 OPTIONS 验证去掉

发布于 2022-09-06 09:05:50 字数 197 浏览 18 评论 0

由于 后端是 用的 c# Web API 2.0, 后端一直返回 405 ,后端只接受 post 请求,后端人员又不愿意改,
所以只能我前端用, 后端说 jQuery 的 ajax 都可以 ,凭什么 你现在不可以了。 后端不愿意改.

所以 问一下 大佬们 , axios 能去掉 OPTIONS 的验证吗 ,不用发 OPTIONS ,直接 post 请求。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

蹲墙角沉默 2022-09-13 09:05:50

跨域并满足以下条件,浏览器就会发送OPTIONS请求:

  • It uses methods other than GET, HEAD or POST. Also, if POST is used to send request data with a Content-Type other than application/x-www-form-urlencoded, multipart/form-data, ortext/plain, e.g. if the POST request sends an XML payload to the server using application/xmlor text/xml, then the request is preflighted.
  • It sets custom headers in the request (e.g. the request uses a header such as X-PINGOTHER)
土豪 2022-09-13 09:05:50

你的请求跨域了吧,跨域的话浏览器默认自动会先发送个options请求。至于怎么去掉,我也没试过。
一般不用管,不影响post,put。
参考:
https://itbilu.com/javascript...
https://developer.mozilla.org...

不及他 2022-09-13 09:05:50

跨域并不一定发送options请求

  //针对post请求  
你的'Content-Type'不是'application/x-www-form-urlencoded' 或者如果有type=file的控件就    
是'multipart/form-data' 或者服务端或者你本身有自定义content-type的话 俩者不统一,浏览器才
会先发送options请求!

**建议你看看你们直接form-data接受的值格式的统一性**
玩心态 2022-09-13 09:05:50

405一般是前后台约定的请求方式不同,或者后台接口不支持你的请求类型吧。
如果跨域用的cors的话,可以让后台加个header就行

一腔孤↑勇 2022-09-13 09:05:50

无法去掉 OPTIONS,但是可以用 Access-Control-Max-Age 缓存,一段时间内不需要重复发 OPTIONS。

注:Access-Control-Max-Age 只对完全相同的 url 有效,参数不同也无法缓存。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文