我想知道AJAX是否可以使用HTTP或HTTPS以外的协议。
Ajax的意思是XMLHttpRequest。正如您不必在XHR中使用XML一样,您也不必使用HTTP。
尽管它的名字,XMLHttpRequest可以用来检索任何类型的数据,而不仅仅是XML,它还支持HTTP以外的协议(包括file和ftp)。
XMLHttpRequest
file
ftp
从W3C XMLHttpRequest规范(添加了重点):
XMLHttpRequest对象实现了脚本引擎公开的接口,该脚本引擎允许脚本执行HTTP客户端功能,例如提交表单数据或从服务器加载数据。这是ECMAScript HTTP API。 该对象的名称是XMLHttpRequest以与Web兼容,尽管此名称的每个组件都有可能引起误解。首先,该对象支持任何基于文本的格式,包括XML。其次,它可用于通过HTTP和HTTPS发出请求( 某些实现除HTTP和HTTPS之外还支持协议,但该功能未包含在本规范中 )。最后,它在与HTTP有关的广泛意义上支持“请求”。即与HTTP请求或已定义HTTP方法的响应有关的所有活动。
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,Firefox,Chrome,IE,Opera,…)或哪个服务器端实现(V8,Rhino与…)。