【发布时间】:2011-09-12 04:15:36
【问题描述】:
我想知道 AJAX 是否可以使用 HTTP 或 HTTPS 以外的协议。
【问题讨论】:
-
还有哪些其他协议?
-
FWIW,IE的原生XHR对象只支持HTTP和HTTPS,虽然老的ActiveX版本也可以使用FILE://。
我想知道 AJAX 是否可以使用 HTTP 或 HTTPS 以外的协议。
【问题讨论】:
Ajax 表示XMLHttpRequest。就像您不必将 XML 与 XHR 一起使用一样,您也不必使用 HTTP。
尽管名称如此,
XMLHttpRequest可用于检索任何类型的数据,而不仅仅是 XML,并且它支持 HTTP 以外的协议(包括file和ftp)。
来自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 (XHR) 是一种可用于 Web 浏览器脚本语言(如 JavaScript)的 API。它用于向 Web 服务器发送 HTTP 或 HTTPS 请求,并将服务器响应数据加载回脚本中。
来自维基百科
【讨论】: