如果Web服务器上文件的文件大小(例如
http://www.mysite.com/myfile.js)大于0字节,是否可以继续使用javascript进行检查?如果是,则返回true或false值?
提前致谢!
解决方法
从理论上讲,您可以使用XHR发出HTTP HEAD请求并检查响应头中的Content-Length.
HEAD
请求与常规GET请求相同,但服务器不得返回实际内容.换句话说,服务器会回复您尝试获取资源时的标头,但随后停止并且不发送文件.
但是,无论文件的实际大小如何,some severs respond到Content-Length标头为0的HEAD请求.其他人回应文件的大小.
为了实现这一点,您必须祈祷您的服务器将文件的实际大小返回给HEAD请求.
如果是,getting that value is easy:
$.ajax('/myfile.js',{ type: 'HEAD',success: function(d,r,xhr) { fileSize = xhr.getResponseHeader('Content-Length'); } });
请注意,当我们HEAD /时,JSFiddle的服务器总是返回0,即使/是16916字节.
还要注意关于HTTP请求类型选项的jQuery的docs say:
The type of request to make (“POST” or “GET”),default is “GET”. Note: Other HTTP request methods,such as PUT and DELETE,can also be used here,but they are not supported by all browsers.
@H_301_25@我刚刚在IE 6-10,Firefox 3.6-7,Opera 9-11和Chrome中测试了这个小提琴,并且每个浏览器都正确发出了HEAD请求,因此我不担心这种模糊的不兼容性声明.更值得关注的是您的服务器如何响应.