一些web采取的是ssr的方式,又或者是类似java的jsp那种,通过服务端渲染页面。那么后端可以在渲染的时候在响应头里加自定义信息。
那么客户端浏览器获取到一个页面(响应内容是html)并加载的时候,能不能通过javascript获取到后端响应该页面内容时,获取加载响应页面的响应头的信息?
举个例子。
客户端请求后端的一个名叫/user/info的action,这个action返回的是一个html,后端还在响应头里设置了自定义的数据。
大致分为5个流程:
(1)客户端请求名叫/user/info的action。(例如在浏览器上输入网址http://127.0.0.1/user/info,回车确认)
(2)后端接收到客户端的请求,后端在响应头里设置自定义信息
(3)后端将html内容响应给客户端
(4)客户端浏览器接收到后端的响应,其中就包括响应头和页面信息(html字符串)
(5)客户端浏览器将后端响应得到html内容进行页面渲染。
那么问题来了,客户端请求/user/info的action(在浏览器上输入网址,然后回车确认),到响应后,浏览器渲染页面的时候,也就是第五步流程,能否调用js获取流程中第2个流程里的,也就是后端在请求处理中,对响应头中设置的数据呢。
这个能用js做到吗?
我仔细看了两遍,还是没看明白……
我这么说吧,你用浏览器打开一个页面,浏览器渲染页面并执行 JS,在 JS 里无法获得你想要的 header。
如果你用 js 发起一个请求,比如用
xmlHttpRequest
,或者fetch()
,那就能取到。