为什么叫XMLHttpRequest?

我一直很想知道为什么这个对象被这样调用?

您的请求的主体不需要采用XML格式。 另外,从服务器接收的数据可以作为JSON,XML,HTML或纯文本获取。 XML在这个对象中不起重要作用。 这是一种陈词滥调吗? 这个对象在第一次创建时曾经是什么?


XMLHttpRequest是由微软的Outlook Web Access团队发明的。 这个高度创新的团队以前给了我们远程脚本,这是“AJAX”风格开发的开始。 远程脚本就像JSONP,但过于复杂(它使用Java applet,包括所有东西)。 我不记得是否可以在IE 4或5中动态注入<script>元素,但似乎这是不可能的。 否则,JSONP似乎足够强大,无需XMLHttpRequest

Outlook团队正在将XML从服务器传输到客户端,因此ActiveX控件的命名是为了反映当时的主要用途。 它被包含为MSXML分析器的一部分。

到Firefox进入游戏并实现他们自己的版本时, XMLHttpRequest使用情况更像现在这样,而XML更少,但Firefox仍然使用相同的名称。 随着两家最大的浏览器制造商创建一个具有相同名称,界面和功能的对象,w3c与现有名称保持一致。 这太糟糕了,有人没有对这个用词不当引起更多的讨厌,并坚持我们把它称为像HttpRequest一样更准确。

我不知道如何或为什么“AJAX”成为流行术语来描述网页与服务器交互而不需要完整的页面加载的编程风格。 “AJAX”与“XMLHttpRequest”相比更加不恰当,因为它不仅意味着XML是一个重要方面,而且还没有提供服务器交互的指示。 我可以用JavaScript异步处理XML,而无需与服务器通信。


是的,名称中的XML部分都是错误的。

最好的解释来自发明XHR的MS工程师:

这是过去几天,当关键功能在发布之前的几天内挤满......我意识到,随着IE和我一起发布的MSXML库在XML团队中有一些很好的联系人,他们可能会帮助我 - 我取得了联系与当时正在运行该团队的Jean Paoli合作,我们很快就达成协议,将这件东西作为MSXML库的一部分。 对于XMLHTTP的名称来说,这是真正的解释 - 主要是关于HTTP,并且没有任何特定的XML绑定,除此之外,它是传送它的最简单的借口,所以我需要将XML填入名称中。

- Alex Hopmann XMLHTTP的故事

这清楚地表明,寻求与XML的联系,无论它们多么合理,基本上是对作者意图的过度解释。
对不起,以破坏乐趣。


AJAX代表异步Javascript和XML。 一开始,所有的通信都是使用XML(HTML也是类XML,而XHTML是XML)。 JSON稍后。 所以这是出于历史原因。 (也请看这个wiki页面)

链接地址: http://www.djcxy.com/p/90003.html

上一篇: Why is it called XMLHttpRequest?

下一篇: Authenticating extranet web site in iframe using Windows Identity Foundation