-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
问题描述
项目中,每个HTTP请求在浏览器中出现了两次请求动作。这两次请求,第一次没有携带参数也没有返回值,第二次请求正常返回了需要的数据。看似做了一次没有必要的请求~
原因解释
开始一直以为是自己哪里配置有问题,造成重复请求。然鹅,搜索引擎上找的了答案...
原来对于跨域,有两种不同的请求类型。分别为简单跨域请求和复杂跨域请求(带预检的跨域请求)。具体的说明请自行搜索答案,毕竟我也说不清楚。。
而我们的项目中,后端采用token检验机制,前端发送请求必须将token放到request header中,然后请求头中携带自定义参数,浏览器就认为请求是复杂跨域请求,所以浏览器在真正请求之前会发送一次预检请求,检测服务器是否支持真实请求进行跨域访问。
解决方案
1、后端设置Access-Control-Max-Age来控制浏览器在多长时间内(单位s)无需在请求时发送预检请求。
2、前端把token放在请求参数中,转化成简单跨域请求。
Metadata
Metadata
Assignees
Labels
No labels