Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/Ajax中的HTTP头请求?_Javascript_Ajax_Http Headers_Xmlhttprequest - Fatal编程技术网

Javascript/Ajax中的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

是否可以在JavaScript中单独使用XMLHTTPRequest执行HTTP头请求

我的动机是节省带宽


如果没有,是否可以伪造它?

很简单,只需使用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.这只是一个头部请求,有没有可能跨域?是的,向下投票:答案似乎混淆了。