Javascript/Ajax中的HTTP头请求?
是否可以在JavaScript中单独使用XMLHTTPRequest执行HTTP头请求 我的动机是节省带宽Javascript/Ajax中的HTTP头请求?,javascript,ajax,http-headers,xmlhttprequest,Javascript,Ajax,Http Headers,Xmlhttprequest,是否可以在JavaScript中单独使用XMLHTTPRequest执行HTTP头请求 我的动机是节省带宽 如果没有,是否可以伪造它?很简单,只需使用HEAD方法,而不是GET或POST: function UrlExists(url, callback) { var http = new XMLHttpRequest(); http.open('HEAD', url); http.onreadystatechange = function() { if
如果没有,是否可以伪造它?很简单,只需使用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
)。getAllResponseHeaders();
getResponseHeader("header-name")
定义于此谢谢,有时框架的抽象隐藏了底层功能!你知道这有多跨浏览器吗?jQuery文档声明“注意:这里也可以使用其他HTTP请求方法,如PUT和DELETE,但并非所有浏览器都支持它们。”@doekman:同步请求将阻止所有依赖于JS的任务(Douglas Crockford曾写道,“这是不尊重他人的,不应该在人们使用的应用程序中使用。”). 想想那些不经意间抄袭了这个例子的人吧。出于这个原因,答案多年来一直效果不佳。更新既展示了如何使用异步请求,也明确了示例不应逐字复制的事实。即使是最简单的JS问题在SO上也几乎总是用jQ解决方案来回答。b.c.这只是一个头部请求,有没有可能跨域?是的,向下投票:答案似乎混淆了。