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.
单从报错信息来说,是

checksign
这个字段错了。但是你说这个字段后端验证过是对的。那你到chrome的开发者工具里看一下,这里面有没有
checksign
,理论上应该是正确的,因为你预请求都是成功的。那么问题很可能在后端,你可以叫他打印以下相关的参数。
因为没有遇到类似问题,以上回答仅供参考。
另外
跨域
相关:简单的跨域可以用
proxyTable
(特别适用于开发环境)。