开发者社区> 问答> 正文

vue.js axios不能进行POST请求? 400 报错

vue.js axios不能进行POST请求? 400 报错

后台设置跨域了,proxyTable也设置了,还是不能进行跨域请求

展开
收起
爱吃鱼的程序员 2020-05-30 23:45:56 1543 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    post请求之前会先发送一个方法名为option的请求探测后台服务器支不支持post,后台判断一下请求method,如果是option 随便返回个字符串,如果是post 按正常业务逻辑写就好了######后台服务器配置,######不行呢。后台的方式试过了。nginx代理的方式也试过了。######

    后台配置的原因,Content-type  首字母要大写

    ######

    引用来自“KylinSun”的评论

    post请求之前会先发送一个方法名为option的请求探测后台服务器支不支持post,后台判断一下请求method,如果是option 随便返回个字符串,如果是post 按正常业务逻辑写就好了

    正解。

    服务器端必须对option这个请求返回200开头的响应,否则第2个post请求是无法提交的。

    nginx端修改nginx.conf或在程序中增加对option的响应请求。

    http://blog.onlycatch.com/post/Ajax%E8%B7%A8%E5%9F%9F%E8%AF%B7%E6%B1%82%E5%8E%9F%E7%90%86%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95

    ######

    搞定了。是服务端的设置有问题。

    response.setHeader("Access-Control-Allow-Origin", "*");
            response.setHeader("Access-Control-Allow-Methods", "POST, GET");
            response.setHeader("Access-Control-Max-Age", "3600");
            response.setHeader("Access-Control-Allow-Headers",
                    "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

    ######


    我上次还问到了这么一个方法,就是修改一下参数的格式。创建一个URLSearchParams对象,将你的参数放进去。。我试过是可以的

    2020-05-30 23:45:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载