javascript 使用XMLHttpRequest是使用 AJAX 的唯一方法吗?

hs1ihplo  于 2023-01-08  发布在  Java
关注(0)|答案(2)|浏览(131)

我认为google.com使用 AJAX ,但是当我查看google.com的源代码时,我没有找到“XMLHttpRequest”。
另外我认为phpMyAdmin使用 AJAX ,但是当我查看phpMyAdmin的源代码时,我没有找到“XMLHttpRequest”。
那么,google.com和phpMyAdmin是如何使用 AJAX 而不使用XMLHttpRequest的呢?他们会不会使用一个库,而这个库使用XMLHttpRequest

piv4azn7

piv4azn71#

AJAX 是一个通用术语,意思是“在不离开页面的情况下从JavaScript发出HTTP请求”。有很多方法可以做到这一点,其中一些方法比其他方法更有争议。

  • XMLHttpRequest是经典的方法。
  • Fetch是一种现代的方法,它有一些优点(例如基于Promised的API),但缺少XHR所具有的一些特性(值得注意的上载进度监控)。
  • JSONP的工作原理是将<script>元素注入到页面中,该页面在加载时调用回调。这是一种绕过同源策略的黑客攻击,该策略存在一些安全风险,已被CORS取代。
  • 注入任何类型的访问远程URL的元素(比如图像)都允许您发出HTTP请求(但不读取响应)。
  • 看起来你也可以handle HTTP requests in Web Assembly

有 * 无数 * 库 Package 自己周围的各种API。

9o685dep

9o685dep2#

要回答您关于www.example.com是否使用XMLHttpRequest的问题google.com,答案是肯定的。
使用Chrome浏览器,打开开发工具,进入网络选项卡。然后,在网页的搜索框中,输入一个字母,就像你要进行网络搜索一样。谷歌随后会向服务器发送一个 AJAX XMLHttpRequest,以获取基于你输入的字母的自动完成建议。
我键入了字母“a”,这导致了几个请求,其中一个是到一个以“search?q=a”开头的URL。这可以在网络选项卡的“名称”列中看到。右边是“类型”列,这表明该请求是XHR请求(意味着它是通过XMLHttpRequest做出的-获取请求将具有“fetch”作为这里的值)。再右边是列“发起方”,其引用发起该网络请求的Javascript。

相关问题