前端登录使用的 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回答
这个和后端接口没关系的,跨域配置好就行
张奸狗二
提问者
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");相似问题