Vue axios发送post请求参数太多,接口报错:No ‘Access-Control-Allow-Origin‘ header is present on the requested resou

场景描述:

      在进行修改操作时,因为表单里有富文本组件,用户在富文本里编辑的html可能会很长,富文本里的html作为参数传给接口执行updata操作时报错。

Access to XMLHttpRequest at 'http://192.168.*.**:8888/base/infoNews/update? ... ...' from origin 'http://192.168.3.7:8805' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

报错信息如下:

 

 后端开发人员打断点调试显示接口并未成功调用,前端点击了“修改”按钮后并未进入后端的断点。这个时候猜测是在前端的请求拦截器拦截了,在请求拦截器的时候就报错了。

 

网上搜索报错关键字 “No 'Access-Control-Allow-Origin' header is present on the requested resource.” 都说是跨域问题,可是我的富文本html字符串短的时候接口就不会报错,只有富文本html字符串长的时候接口才会报错,所以这个时候一定不是跨域问题。在谷歌调试器里查看接口请求信息,看到请求的接口后面拼接了好长一段参数。

 

正常post请求url后面是不会拼接参数的,肯定是因为url后面拼接了太多参数,导致接口url改变了,所以引发的跨域问题

好了,找到了原因,那就针对解决post请求时url后面拼接参数的问题。

 

在网上找到一个帖子:https://forum.vuejs.org/t/post-url/45633

 

答案在这里:

 

我目前项目里post和get请求时,参数都是用的params,所以无论是发送的post还是get请求,url后面都拼接了参数。参数少的时候还好,没有问题;一旦参数多了,就像刚刚传富文本html那样,就会报错。所以解决方法是:post请求的时候用data传递参数。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值