Ajax调用背后的情况如何

时间:2017-12-08 09:25:43

标签: javascript ajax xmlhttprequest

我刚刚开始学习Ajax,而且我看到大多数人都在使用Ajax(制作Get和Post请求),如下所示:

$.ajax({
         method: "GET",
         url: "Customers/GetCustomerById",
         data: { customerId: Id }
        })
.done(function (response) {
//Do something here
});

我在Ajax后面的红色是XMLHttpRequest object,所以这意味着当使用上面的代码时,这样的事情发生在场景背后" :

httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function someMyFunction(){
    // Process the server response here.
};
http.open("GET", url+"?"+customerId, true);

这是真的吗?

今天是否避免了第二种方法?或者它还在使用? 我只是在学习网络而且我不知道这就是为什么我要问...

我也想知道为什么人们会使用这个"首先"方法,也许他们不是,但我在许多地方实际上看到了它......

非常感谢大家和欢呼!

3 个答案:

答案 0 :(得分:1)

  

我在Ajax后面的红色是XMLHttpRequest对象

XHR是一个用于执行Ajax的浏览器API。还有其他几个。 XHR可能是最常用的。

  

这是真的吗?

jQuery确实在幕后做了一些事情。

  

今天是否避免了第二种方法?

没有

有些人使用jQuery,因为他们发现它比使用本机浏览器API或其他库更方便。其他人不使用jQuery。

答案 1 :(得分:1)

我将简单地在两个部分中描述答案

<强> 1。在$.ajax()

的幕后

是的,基本上JQuery使用本机浏览器API进行Ajax请求。它创建的XHR对象与第二个代码相同,但它们使用了一些额外的代码行,因为JQuery不仅处理纯文本。 (即额外的JSON和XML支持)

您可能会看到XHR here的JQuery源代码部分在幕后观看更多内容;)

<强> 2。使用原生浏览器API

现在第二个示例代码类型也在使用。人们使用$.ajax(),因为它使编码变得快速而简单,也很容易捕获XML和JSON响应。

希望有所帮助

答案 2 :(得分:0)

“First”方法使用名为jQuery的js库。使用jQuery(这不是jQuery的主要用途)不仅更容易进行ajax调用,而且它还处理跨不同浏览器和主要是不同版本的浏览器的ajax调用。今天大多数浏览器都支持XMLHTTPRequest对象。但旧浏览器的情况并非如此。

阅读this了解详情。

使用jQuery编写代码可能更容易,但有时由于jQuery(或某些浏览器可能存在jQuery问题)而发生文件之间的冲突。 在这些情况下,开发人员可以选择通过在vanilla javascript中编码来实现和处理这些和/或其他场景。选择任何一种方法取决于开发人员。

希望这个答案有所帮助。