AJAX可以使用除HTTP或HTTPS之外的协议吗?

5
我想知道AJAX是否可以使用除HTTP或HTTPS之外的其他协议。

还有哪些协议呢? - c-smile
5
值得一提的是,IE的本地XHR对象仅支持HTTP和HTTPS,尽管旧版本的ActiveX可以使用FILE://。 - EricLaw
2个回答

9
Ajax意味着XMLHttpRequest。就像你不必在XHR中使用XML一样,你也不必使用HTTP。
尽管它的名称是 XMLHttpRequest ,但它可用于检索任何类型的数据,而不仅仅是XML,并且它支持其他协议(包括文件ftp)。
W3C XMLHttpRequest spec(强调添加):
XMLHttpRequest对象实现了由脚本引擎公开的接口,使脚本能够执行HTTP客户端功能,例如提交表单数据或从服务器加载数据。它是ECMAScript HTTP API。
该对象的名称为XMLHttpRequest,以与Web兼容,但是这个名称的每个组成部分都可能具有误导性。首先,该对象支持任何基于文本的格式,包括XML。其次,它可用于通过HTTP和HTTPS进行请求(一些实现支持除HTTP和HTTPS之外的协议,但该功能不包含在此规范中)。最后,它支持HTTP相关术语中与HTTP请求或响应有关的所有活动,即定义的HTTP方法所涉及的所有活动。
除HTTP和HTTPS之外的可用协议是非标准化的,因此取决于您使用的特定环境[1]。也就是说,所有符合的XHR实现必须支持HTTP和HTTPS,但不需要支持任何其他特定协议。这意味着您可能会发现Internet Explorer支持这些协议,而其他浏览器则不支持。

1比如,哪个浏览器的哪个版本(Safari vs Firefox vs Chrome vs IE vs Opera vs...),或者哪种服务器端实现(V8 vs Rhino vs...)。


4
尽管名字中有 "XML",但 XMLHttpRequest 可以用来检索任何类型的数据,而不仅仅是 XML,并且它也支持除 HTTP 外的其他协议(包括文件和 FTP)。除此之外,他们在选名方面做得非常好 :) - Paul D. Waite
尽管XMLHttpRequest被认为是支持FTP资源的,但没有一个可行的例子可以在任何地方找到。 - frequent
@frequent 你有没有在任何地方看到过不起作用的例子?我从来没有看到过甚至尝试使用它的情况。FTP在当今的Web应用程序中并不经常使用,而且它特别有用,因为ajax对于动态资源最有用/有趣。 - Matt Ball
1
@MattBall:我的问题(在这里)有我找到的最好的链接。我正在开发一个多存储JavaScript插件。可以使用WebDav、Xwiki、S3……但不支持FTP……可惜。 - frequent

-4
XMLHttpRequest(XHR)是一种API,可用于Web浏览器脚本语言(如JavaScript)。它用于向Web服务器发送HTTP或HTTPS请求,并将服务器响应数据加载回脚本中。
来自维基百科。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接