前端登录使用的 axios 请求问题

来源:4-11 实现用户登录

张奸狗二

2019-12-07 12:41:20

// 前端请求
axios.post(serverUrl + '/passport/login', userBO)

axios 请求分为两种

一、简单请求:

包含:HTTP 头、请求方式和请求数据类型 Content-Type

HTTP 头包含: Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type

请求方式包含: HEAD、GET、POST

但是 Content-Type 中仅限: application/x-www-form-urlencoded、multipart/form-data、text/plain

二、复杂请求

简单的来说不是简单请求就是复杂请求


由于简单请求中的 Content-Type 值中不包含 application/json

所以我们所发送的跨域 post applicaion/json 请求是复杂请求


复杂请求有一个弊端是:

复杂请求会首先发送一个 OPTIONS 请求看看请求连接是否接通

再发送你缩写的真是请求

当第一次请求不通过时,是不发送第二次的真实请求的


那么如何避免第一次的 OPTIONS 请求呢?



写回答

2回答

coding_zhang

2019-12-07

这个和后端接口没关系的,跨域配置好就行

1

张奸狗二

提问者

2019-12-07

我解决问题了!


补充上面的说明:

OPTIONS 请求是测试后端是否开起了 CORS 保护, 如果没有开启保护则是通过的。
如果开启了保护,则是不通过的!


所以我们还是要设置自己配置的 cors 保护:

/**
 * 设置允许该链接下发送跨域请求
 * 该链接是天天吃货前端的链接,记住一定不要配置成自己后端的链接
 *
 * 注意:配置里链接后面千万不要加/
 * 比如 http://127.0.0.1:8080/
 * 应该写成 http://127.0.0.1:8080
 *
 * http://domain.com/
 * 应该写成 http://domain.com
 *
 * 前者配置不好用哟
 */
corsConfiguration.addAllowedOrigin("http://127.0.0.1:8080");
corsConfiguration.addAllowedOrigin("http://foodie.work");


3

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程