阅读 2465

axios的跨域问题

axios post访问拿不到数据

post请求时不会直接进行post请求,第一次会有一个方法为options的预先请求,访问完一次之后才会再访问一次post的请求,此时获取不到后台返回的数据。

options预先请求
)

解决方法:

  • 跨域post实例,用到了qs组件来避开ajax信使请求,并兼容Android。(已验证)     使用qs组件,将传参转化成json数据传输。
    qs string转换成json数据
  • proxyTable进行代理进行跨域请求(已验证)
    config文件夹中dev.env.js中设置对应的proxyTable,其中注意的地方,要确保设置的proxyTable已经被正确的调用。最开始处是 build 文件夹中的 webpack.dev.conf.js文件中找到 devServer下的proxy配置
    dev.conf中设置proxyTable代理设置

    随后在 config文件夹中找到index文件中的proxyTable,有没有引入到dev.env.js中设置的proxyTable
    index文件中引入设置的proxyTable代理
  • 使用axios的拦截器设置content-type属性为application/x-www-form-urlencoded,multipart/form-data,text/plain这其中的一种,进行降级处理,绕过options请求 (存在问题!!!!post的传参必须依旧使用qs组件转化参数) 测试未通过
评论