vue 跨域相关问题

发布于 2022-09-06 08:23:20 字数 1227 浏览 17 评论 0

axios.interceptors.request.use(function (config) {
  store.commit('changeJsencrypt')
  console.log('请求拦截器');
  config.data = JSON.stringify(config.data)
  config.headers = {
    'checksign' : 'W6lAyK1V6j8eHfHXn3yem6eyTRslmkGv1AsIQD7d2mWqjqMn81ROK8YVdC31gnSyoo7OJBQIAZWKWxrbFzyiGZZH51Qs/ETuGb7QnxXGYExKWDDp1R6Xg2am7i13IhbKPqyJCGiuovtqrShjJQi8i0K9qH7lQpaFI/nXIvN48jU=',
    'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
  }
  return config;
}, function (error) {
  // Do something with request error
  return Promise.reject(error);
});

其中checksign是通过公钥加密的,服务端经过测试没问题,并且是允许这个参数的。

服务端:

图片描述

查了一些资料和尝试了解决仍然出现相同报错

实际上它是成功请求了的

图片描述

但是仍然报错

图片描述

Request header field checksign is not allowed by Access-Control-Allow-Headers in preflight response.

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

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

发布评论

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

评论(3

撑一把青伞 2022-09-13 08:23:20

单从报错信息来说,是checksign这个字段错了。但是你说这个字段后端验证过是对的。那你到chrome的开发者工具里看一下,
clipboard.png

这里面有没有checksign,理论上应该是正确的,因为你预请求都是成功的。

那么问题很可能在后端,你可以叫他打印以下相关的参数。

因为没有遇到类似问题,以上回答仅供参考。

另外跨域相关:
简单的跨域可以用proxyTable(特别适用于开发环境)。

︶ ̄淡然 2022-09-13 08:23:20

要配置服务端允许请求头里带上checksign这个字段

孤城病女 2022-09-13 08:23:20

1 :vue 的话 你可以配置 本地代理 把本地的域名 端口指向后端所用的地址

2 最重要跨域的解决方案就是后台把 支持所以请求头 让他改为* 还有返回一块注意一下吧

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