axios跨域请求后台验证码时出现后台session为空的解决办法

在使用axios进行跨域请求时遇到Java后台Session为空的问题。通过在Java后台设置'Access-Control-Allow-Origin'为前端地址实现跨域,但验证码无法存入Session。解决方法包括:后台接受前端请求证书,前端axios配置携带证书,从而确保Session正常工作,成功进行验证码校验。
摘要由CSDN通过智能技术生成

我们知道“axois”是ajax的替代品,他支持promise链式调用,同时他也遵循ajax的同源策略。
最近用vue做一个前后台分离的系统时,在开发环境下就出现了跨域的问题,于是在Java的代码中需要加这个:

  Httpservletkesponse response = (Httpservletkesponse) ;
  //添加跨域CORS
  response.setHeader("Access-Control-llow-redentials,"true");
  response.setHeader("Access-Control-llow-0rigin,"http: //localhost:8080");
  response.setHeader("Access-Control-Allow-Headers,"X-Requested
如果你使用axios进行跨域请求,返回的数据为空,可能是因为浏览器的安全机制禁止了跨域请求,导致无法获取数据。此可以通过设置服务器端的跨域访问控制来解决问题。 在服务器端,需要设置允许跨域访问的头信息,例如设置Access-Control-Allow-Origin为允许的域名,可以在响应头中添加如下信息: ``` Access-Control-Allow-Origin: http://example.com Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS Access-Control-Allow-Headers: Content-Type, Authorization ``` 其中Access-Control-Allow-Origin表示允许跨域请求的域名,如果允许所有域名访问可以设置为*;Access-Control-Allow-Credentials表示是否允许携带cookie等凭证信息;Access-Control-Allow-Methods表示允许的请求方法;Access-Control-Allow-Headers表示允许的请求头信息。 在axios中,可以设置withCredentials为true来允许携带cookie等凭证信息,例如: ```javascript axios.get('http://api.example.com/data', { withCredentials: true }).then(response => { console.log(response.data) }).catch(error => { console.log(error) }) ``` 在这个例子中,我们通过axios发送了一个GET请求,设置了withCredentials为true,允许携带cookie等凭证信息。当服务器返回响应,我们可以通过response.data获取响应数据。 注意:如果你的服务器返回的响应头中没有设置Access-Control-Allow-Credentials为true,即使你在axios中设置了withCredentials为true,也无法携带cookie等凭证信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值