前端使用ajax时,自动请求了两次

前端使用ajax时,自动请求了两次

如下
前端使用ajax时,自动请求了两次_第1张图片
前端使用ajax时,自动请求了两次_第2张图片

发生原因:
有跨域请求发生
必须要在跨域的情况下。
除GET、HEAD和POST(only with application/x-www-form-urlencoded, multipart/form-data, text/plain Content-Type)以外的跨域请求(我们可以称为预检(Preflighted)的跨域请求)。

之所以会发送2次请求,那是因为我们使用了带预检(Preflighted)的跨域请求。该请求会在发送真实的请求之前发送一个类型为OPTIONS的预检请求。预检请求会检测服务器是否支持我们的真实请求所需要的跨域资源,唯有资源满足条件才会发送真实的请求。比如我们在请求头部增加了authorization项,那么在服务器响应头中需要放入Access-Control-Allow-Headers,并且其值中必须要包含authorization,否则OPTIONS预检会失败,从而导致不会发送真实的请求。

本地使用127.0.0.1请求页面, 页面中使用了本地 ip (192.168) 请求后台导致的

解决办法:
1.使用同一域名访问

你可能感兴趣的:(前端专栏,前端,ajax,两次请求)