使用Axios处理Cookie

最近,在开发网站时,我在使用axios进行发布请求时遇到了一个问题。 发出请求的一般格式为:

  axios.post(URL,数据,配置) 
.then(function(response){

})
.catch(function(error){

});

我面临的问题是cookie没有到达后端。 经过深思熟虑后,我发现请求标头中没有cookie。 在谷歌搜索时,我遇到了几种解决方案。 其中一些是:

  • 在发送之前对数据进行字符串化处理 。 我同时尝试了JSON.stringify和queryString.stringify,但是没有用
  JSON.stringify() 
queryString.stringify()
  • 在发出请求时设置{withCredentials:true} 。 在搜索时,我遇到了一个提出请求时设置为withCredentials:true的解决方案。 应该注意的是,我们应该在配置中将withCredentials:true设置为另一个键:值对。 例如:
  config = {标头:{'Content-Type':'application / json'}, 
withCredentials:正确
}

但是,即使这种方法也失败了。

  • 经过更多研究,我发现将Cookie设置为标头并在其中传递Cookie是一种建议的方法。
  Cookie:名称=值;  name2 = value2;  name3 = value3; 

但是仍然没有运气。 我在控制台上遇到错误。 经过研究,我发现由于安全原因,我们无法根据新的W3C规则将Cookie设置为标头。

在这一点上,我正计划使用令牌而不是cookie。 但是经过一番尝试和错误之后,我终于解码了!!

授权设置为标头并在其中传递cookie值,格式如下:

 标题:{授权:`承载$ {cookie_value}`} 

之后,只需确保您的后端允许标头Authorization和voila cookie可以通过!!!

配置正确方法的过程非常耗时,并且非常复杂,但是经过一连串的反复试验,我非常高兴能够解决此问题。

因此,我决定在上面写一篇文章并分享我的经验,提供正确的方法,以便将来开发人员不必花费时间来配置此问题的解决方案。 希望对别人有帮助