gpt4 book ai didi

javascript - 如何清除 AJAX GET 调用的 HTTP header ?

转载 作者:行者123 更新时间:2023-11-30 13:43:52 25 4
gpt4 key购买 nike

我开发了一个解决方案,该解决方案依靠 AJAX 调用来检索信息并每 10 秒更新一次客户端页面。这工作正常,但我担心代码的可伸缩性,考虑到从客户端传递到服务器并再次返回的 header 的数量和长度。我已经删除了服务器端的一些冗余 header ,主要是与 ASP.NET 相关的 header ,现在我正在尝试减少来自客户端的 header 。

我公司使用的浏览器是IE(版本6,即将升级到7)。这是我当前代码的近似值:

var xmlHTTP = new ActiveXObject('Microsoft.XMLHTTP');

xmlHTTP.onreadystatechange = function() {
if ((xmlHTTP.readyState == 4) && (xmlHTTP.status == 200)) {
myCallbackFunction(xmlHTTP);
}
};

xmlHTTP.open('GET', 'myUrl.aspx');

try {
xmlHTTP.setRequestHeader("User-Agent", ".");
xmlHTTP.setRequestHeader("Accept", ".");
xmlHTTP.setRequestHeader("Accept-Language", ".");
xmlHTTP.setRequestHeader("Content-Type", ".");
} catch(e) {}

xmlHTTP.send();

尽管I've read可以清除其中一些 header ,但我还没有找到一种在 IE6 中有效的方法。将它们设置为 null 会导致类型不匹配异常,因此我最终只是将它们替换为“.”。暂且。是否有另一种清除它们的方法或减少提交的 HTTP header 的替代方法?

此外,似乎根本无法替换或缩短“Referrer” header 。

最佳答案

根据WD spec

The setRequestHeader() method appends a value if the HTTP header given as argument is already part of the list of request headers.

也就是说,您只能添加 header ,而不能替换它们。

这并不完全符合当前浏览器的行为,但它可能是浏览器的发展方向,在这种情况下,从长远来看,这方面的任何努力都是浪费时间。无论如何,当前浏览器设置 header 的行为千差万别,通常不可靠。

There seems to be no way of replacing or shortening the 'Referrer' header at all.

这不会让我感到惊讶,因为有些人错误地使用“Referer”[sic] 作为访问控制机制。

您可以尝试确保当前页面 URL 不会过长,但老实说,所有这些对我来说都是过早优化的味道。无论您做什么,您的请求都将适合一个 IP 数据包,因此不会有明显的性能差异。

对于 Mibbit(如您链接的博客中提到的)尝试这些东西可能是值得的,因为 Mibbit 吸引了相当惊人的流量,但对于一个简单的公司范围的应用程序,我不认为跨浏览器-and-proxy-testing-burden:end-user-benefit 比率是值得的。

关于javascript - 如何清除 AJAX GET 调用的 HTTP header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com