js如何获取response header信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何获取response header信息相关的知识,希望对你有一定的参考价值。
$.ajax(type: 'HEAD', // 获取头信息,type=HEAD即可
url : window.location.href,
complete: function( xhr,data )
// 获取相关Http Response header
var wpoInfo =
// 服务器端时间
"date" : xhr.getResponseHeader('Date'),
// 如果开启了gzip,会返回这个东西
"contentEncoding" : xhr.getResponseHeader('Content-Encoding'),
// keep-alive ? close?
"connection" : xhr.getResponseHeader('Connection'),
// 响应长度
"contentLength" : xhr.getResponseHeader('Content-Length'),
// 服务器类型,apache?lighttpd?
"server" : xhr.getResponseHeader('Server'),
"vary" : xhr.getResponseHeader('Vary'),
"transferEncoding" : xhr.getResponseHeader('Transfer-Encoding'),
// text/html ? text/xml?
"contentType" : xhr.getResponseHeader('Content-Type'),
"cacheControl" : xhr.getResponseHeader('Cache-Control'),
// 生命周期?
"exprires" : xhr.getResponseHeader('Exprires'),
"lastModified" : xhr.getResponseHeader('Last-Modified')
;
// 在这里,做想做的事。。。
); 参考技术A xhr.getAllResponseHeaders();//返回全部头信息,string
xhr.getResponseHeader('date');
xhr.getResponseHeader('server');
xhr.getResponseHeader('transfer-Encoding');
xhr.getResponseHeader('content-type')
参照 http://www.w3school.com.cn/tiy/t.asp?f=ajax_httprequest_js_2
参考技术B 普通的请求JS无法获取,,只有ajax请求才能获取到。获取跨域请求的自定义的response headers
一般情况下,使用ajax的getAllResponseHeaders这个方法只能得到response headers中的content-type的信息,其他服务器端放入response header中的信息并不能被获取,
我们需要做的配置是:在服务端的headers中多加一个Access-Control-Expose-Headers,后面可以有多个内容,以逗号分开。
这样的话我们就可以获取response headers中自定义的信息了
不过我还是想多bb一些自己对于http通信的理解,在我粗浅的理解下,web浏览器和服务器的http通信应该大致分为两步,第一步是request header 和response header 的一些信息,在我的理解下,就是先发送一个小的数据包,试探一下,看能不能建立连接,如果能建立连接,下一步才会真正的传输数据,,,,卧槽。。。。。感觉自己实在是编不下去了。。。。。。。。。。
其实在跨域的问题上,还有一些请求头信息需要设置:
"Access-Control-Allow-Origin" : "*"
"Access-Control-Allow-Methods" : "GET, POST, DELETE, PUT, OPTIONS, TRACE, HEAD, PATCH"
"Access-Control-Allow-Headers" : "Content-Type"
算了,我不在这儿bb了。。。任重而道远啊,,,感觉自己只是一个小2:1
以上是关于js如何获取response header信息的主要内容,如果未能解决你的问题,请参考以下文章
js获取页面response headers中各domain下的cookie个数、及总的cookie大小 跪求啊
如何移除网站Response Headers中的X-Powered-By信息?
Python爬虫如何获取网页Network中某个文件的response?