是否可以仅使用JavaScript中的XMLHTTPRequest来执行HTTP Head请求?
我的动机是节省带宽。
如果没有,是否可以伪造呢?
很简单,只需使用HEAD方法,而不是GET或POST:
function UrlExists(url, callback) { var http = new XMLHttpRequest(); http.open('HEAD', url); http.onreadystatechange = function() { if (this.readyState == this.DONE) { callback(this.status != 404); } }; http.send(); }
这只是一个简短的示例,展示了如何使用HEAD方法。生产代码可能需要针对不同的结果状态(成功,失败,超时)更细粒度的回调,并可能使用不同的事件处理程序(onload,onerror而ontimeout不是onreadystatechange)。
onload
onerror
ontimeout
onreadystatechange