axios跨域时 返回200 但是请求方法变成options

发布于 2022-09-05 04:42:41 字数 391 浏览 12 评论 0

axios跨域时 返回200 但是请求方法变成options 请求失败

图片描述

代码:
axios.post('http://192.168.3.128/login',{username:'test',password:'test'}).then(function(){

console.log('salkdj');

});

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

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

发布评论

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

评论(4

ι不睡觉的鱼゛ 2022-09-12 04:42:43

当你的 ajax 的请求为非简单请求时,浏览器会进行预检,即发送 OPTIONS 请求到服务器,询问是否允许跨域。如果响应中允许你的预检中请求的跨域行为,则浏览器会进行真正的请求。否则,会报 405 错误。

月隐月明月朦胧 2022-09-12 04:42:43

花几分钟阅读一下文档,不然你后续还会有其他跨域相关问题的。
https://developer.mozilla.org...

烟花易冷人易散 2022-09-12 04:42:43

这是前端能解决的吗?
还是学 NodeJS 吧,自己处理这类来自后端语言和服务器端的问题。

怪异←思 2022-09-12 04:42:42

上面的说的都对, 我这里给出个解决办法

axios.interceptors.request.use(function (config) {
    config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    if(config.method === 'post') {
        config.data = qs.stringify( {
            ...config.data
        })
    } 
    return config;
  }, function (error) {
    loadinginstace.close()
    return Promise.reject(error);
  })

设置拦截器, 把content-type 设置成application/x-www-form-urlencoded, 降级为简单请求, 就不会发送options请求, 注意如果是post方法, 需要qs模块转换一下参数

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