网上有不少说法ajax的请求url浏览器不会重定向的说法是片面的,正常是这样的:

当服务器将302响应发给浏览器时,浏览器并不是直接进行ajax回调处理,而是先执行302重定向——从Response Headers中读取Location信息,然后向Location中的Url发出请求,在收到这个请求的响应后才会进行ajax回调处理。大致流程如下:

ajax -> browser -> server -> 302 -> browser(redirect) -> server -> browser -> ajax callback

 所以说不是ajax请求浏览器没法重定向,而是ajax无法控制控制重定向。

如果碰到前后端分离的项目页面,此等页面一般是ajax请求,如果此时做权限拦截, 重定向是二次请求服务器的,也就是链接请求页面时,服务器重定向,浏览器收到重定向地址,再次请求此重定向的地址,实际操作中此时服务返回重定向302 , 浏览器收到这个地址,按这个地址发出请求, 然后服务器此时如果---------未完, 碰到一个例子, 拦截时返回的字符串不用重定向, 朋友那边 请求页面的ajax 竟然收到了收到了信息,实际应该未加载才对,因为非在本机操作.固有空再补充吧

posted on 2021-03-03 09:14  小石头的一天  阅读(961)  评论(0编辑  收藏  举报