【问题标题】:Can AJAX use protocols other than HTTP or HTTPS?AJAX 可以使用 HTTP 或 HTTPS 以外的协议吗?
【发布时间】:2011-09-12 04:15:36
【问题描述】:

我想知道 AJAX 是否可以使用 HTTP 或 HTTPS 以外的协议。

【问题讨论】:

  • 还有哪些其他协议?
  • FWIW,IE的原生XHR对象只支持HTTP和HTTPS,虽然老的ActiveX版本也可以使用FILE://。

标签: ajax http https protocols


【解决方案1】:

Ajax 表示XMLHttpRequest。就像您不必将 XML 与 XHR 一起使用一样,您也不必使用 HTTP。

尽管名称如此,XMLHttpRequest 可用于检索任何类型的数据,而不仅仅是 XML,并且它支持 HTTP 以外的协议(包括 fileftp)。

来自W3C XMLHttpRequest spec(强调添加):

XMLHttpRequest 对象实现了一个由脚本引擎公开的接口,该接口允许脚本执行 HTTP 客户端功能,例如提交表单数据或从服务器加载数据。它是 ECMAScript HTTP API。

为了与 Web 兼容,该对象的名称是 XMLHttpRequest,尽管此名称的每个组成部分都可能具有误导性。首先,该对象支持任何基于文本的格式,包括 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...)

【讨论】:

  • “尽管它的名字,XMLHttpRequest 可用于检索任何类型的数据,而不仅仅是 XML,它支持 HTTP 以外的协议(包括文件和 ftp)。” - 除此之外,他们在取名字方面做得很好:)
  • 虽然据说支持,但没有一个 xmlhttprequest 到 FTP 资源的工作示例可以在任何地方找到。
  • @frequent 你有没有在任何地方看到过无效的例子?我还没有曾经见过使用它的尝试。如今,FTP 不常用于 Web 应用程序,但它特别有用,因为 ajax 对动态资源最有用/最有趣。
  • @MattBall:我的问题 (here) 有我找到的最佳链接。我正在开发一个多存储 javascript 插件。可以做webDav、xwiki、s3...没有FTP...可惜
【解决方案2】:

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

来自维基百科

【讨论】:

    猜你喜欢
    • 2012-09-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2011-06-08
    • 2017-07-16
    • 1970-01-01
    • 2013-11-23
    • 2017-02-16
    相关资源
    最近更新 更多