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

San*_*Lee 5 ajax https protocols http

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

Mat*_*all 9

Ajax表示XMLHttpRequest.就像您不必在XHR中使用XML一样,您也不必使用HTTP.

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

W3C XMLHttpRequest规范(重点补充):

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 ...)

  • "尽管它的名字,XMLHttpRequest可用于检索任何类型的数据,而不仅仅是XML,它支持HTTP以外的协议(包括文件和ftp)." - 除此之外,他们选择名称做得很好:) (4认同)