当前位置: 首页 > 文档资料 > jQuery 入门教程 >

AJAX

优质
小牛编辑
136浏览
2023-12-01

AJAX是Asynchronous JavaScript和XML的缩写,这项技术可以帮助我们在没有浏览器页面刷新的情况下从服务器加载数据。

如果您是AJAX的新手,我建议您在继续之前先阅读我们的Ajax教程 。

JQuery是一个很棒的工具,它提供了丰富的AJAX方法来开发下一代Web应用程序。

加载简单数据

使用JQuery AJAX可以非常轻松地加载任何静态或动态数据。 JQuery提供了load()方法来完成这项工作 -

语法 (Syntax)

这是load()方法的简单语法 -

<b>[selector].</b>load( URL, [data], [callback] );

以下是所有参数的说明 -

  • URL - 请求发送到的服务器端资源的URL。 它可以是CGI,ASP,JSP或PHP脚本,它们动态地或从数据库中生成数据。

  • data - 此可选参数表示一个对象,其属性被序列化为要传递给请求的正确编码参数。 如果指定,则使用POST方法发出请求。 如果省略,则使用GET方法。

  • callback - 在将响应数据加载到匹配集的元素之后调用的回调函数。 传递给此函数的第一个参数是从服务器接收的响应文本,第二个参数是状态代码。

例子 (Example)

考虑以下带有小型JQuery编码的HTML文件 -

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $("#driver").click(function(event){
               $('#stage').load('/jquery/result.html');
            });
         });
      </script>
   </head>
   <body>
      <p>Click on the button to load /jquery/result.html file −</p>
      <div id = "stage" style = "background-color:cc0;">
         STAGE
      </div>
      <input type = "button" id = "driver" value = "Load Data" />
   </body>
</html>

这里load()向指定的URL /jquery/result.html文件发起Ajax请求。 加载此文件后,所有内容都将填充在标有ID stage “div”中。 假设,我们的/jquery/result.html文件只有一行HTML -

<h1>THIS IS RESULT...</h1>

单击给定按钮时,将加载result.html文件。

获取JSON数据

服务器会根据您的请求返回JSON字符串。 JQuery实用程序函数getJSON()解析返回的JSON字符串,并将结果字符串作为第一个参数提供给回调函数以采取进一步操作。

语法 (Syntax)

以下是getJSON()方法的简单语法 -

<b>[selector].</b>getJSON( URL, [data], [callback] );

以下是所有参数的说明 -

  • URL - 通过GET方法联系的服务器端资源的URL。

  • data - 一个对象,其属性用作名称/值对,用于构造要附加到URL的查询字符串,或预格式化和编码的查询字符串。

  • callback - 请求完成时调用的函数。 将响应主体消化为JSON字符串所产生的数据值作为第一个参数传递给此回调,状态作为第二个参数传递。

例子 (Example)

考虑以下带有小型JQuery编码的HTML文件 -

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $("#driver").click(function(event){
               $.getJSON('/jquery/result.json', function(jd) {
                  $('#stage').html('<p> Name: ' + jd.name + '</p>');
                  $('#stage').append('<p>Age : ' + jd.age+ '</p>');
                  $('#stage').append('<p> Sex: ' + jd.sex+ '</p>');
               });
            });
         });
      </script>
   </head>
   <body>
      <p>Click on the button to load result.json file −</p>
      <div id = "stage" style = "background-color:#eee;">
         STAGE
      </div>
      <input type = "button" id = "driver" value = "Load Data" />
   </body>
</html>

这里JQuery实用程序方法getJSON()向指定的URL result.json文件发起Ajax请求。 加载此文件后,所有内容都将传递给回调函数,该函数最终将填充在标有ID stage “div”中。 假设,我们的result.json文件具有以下json格式的内容 -

{
   "name": "Zara Ali",
   "age" : "67",
   "sex": "female"
}

单击给定按钮时,将加载result.json文件。

将数据传递到服务器

很多时候,您从用户收集输入,并将该输入传递给服务器以进行进一步处理。 JQuery AJAX使用任何可用的Ajax方法的data参数将收集的数据传递到服务器变得非常容易。

例子 (Example)

此示例演示了如何将用户输入传递给Web服务器脚本,该脚本将返回相同的结果并打印出来 -

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $("#driver").click(function(event){
               var name = $("#name").val();
               $("#stage").load('/jquery/result.php', {"name":name} );
            });
         });
      </script>
   </head>
   <body>
      <p>Enter your name and click on the button:</p>
      <input type = "input" id = "name" size = "40" /><br />
      <div id = "stage" style = "background-color:cc0;">
         STAGE
      </div>
      <input type = "button" id = "driver" value = "Show Result" />
   </body>
</html>

这是用result.php脚本编写的代码 -

<?php
   if( $_REQUEST["name"] ){
      $name = $_REQUEST['name'];
      echo "Welcome ". $name;
   }
?> 

现在,您可以在给定的输入框中输入任何文本,然后单击“显示结果”按钮以查看您在输入框中输入的内容。

JQuery AJAX方法

您已经使用JQuery看到了AJAX的基本概念。 下表列出了您可以根据编程需要使用的所有重要的JQuery AJAX方法 -

Sr.No.方法和描述
1jQuery.ajax( options )

使用HTTP请求加载远程页面。

2jQuery.ajaxSetup( options )

设置AJAX请求的全局设置。

3jQuery.get(url,[data],[callback],[type])

使用HTTP GET请求加载远程页面。

4jQuery.getJSON(url,[data],[callback])

使用HTTP GET请求加载JSON数据。

5jQuery.getScript(url,[callback])

使用HTTP GET请求加载并执行JavaScript文件。

6jQuery.post(url,[data],[callback],[type])

使用HTTP POST请求加载远程页面。

7load(url,[data],[callback])

从远程文件加载HTML并将其注入DOM。

8serialize()

将一组输入元素序列化为一串数据。

9serializeArray()

序列化所有表单和表单元素,如.serialize()方法,但返回一个JSON数据结构供您使用。

JQuery AJAX事件

您可以在AJAX调用进度的生命周期中调用各种JQuery方法。 根据不同的事件/阶段,可提供以下方法 -

您可以浏览所有AJAX事件

Sr.No.方法和描述
1ajaxComplete( callback )

附加一个AJAX请求完成时要执行的函数。

2ajaxStart( callback )

每当AJAX请求开始并且没有任何活动已经激活时,附加要执行的函数。

3ajaxError( callback )

每当AJAX请求失败时附加要执行的函数。

4ajaxSend( callback )

在发送AJAX请求之前附加要执行的函数。

5ajaxStop( callback )

在所有AJAX请求结束时附加要执行的函数。

6ajaxSuccess( callback )

每当AJAX请求成功完成时,附加要执行的函数。

最后更新:

类似资料

  • 我正在尝试使用Struts 2和jQuery构建Web应用程序。 在改变下拉列表时,我需要从数据库中获取详细信息。在我的< code>struts.xml配置中,我将方法和操作定义如下: 当我在所有相应位置进行更改后执行应用程序时,请求被传递给 类和 DAO 方法,并且控件成功返回到屏幕。但是返回的数据在屏幕上不可用,我收到一条错误消息: url…404未在jQuery中找到(匿名函数)ajax。

  • 如何在jQuery AJAX中更改成功块中freemarker变量的值,我的页面有两个控制器第一个控制器使用GET方法返回一个带有视图名称的简单字符串,第二个控制器使用json和POST方法处理数据 给你 我的第二个控制器 我的Json方法 我的传呼myform.html 到目前为止,我的freemarker变量得到了我放在success块中的值,但在我按下submit按钮之前它显示为succes

  • 我使用jQueryAjax发布数据并相应地显示成功消息。代码如下: Javascript HTML PHP服务器端 现在一切正常,但是我无法将成功消息从服务器端发送到客户端。我如何才能在客户端页面中显示成功消息。在客户端javascript当我打印数据在警报框我看到一个空框。如何将数据变量从服务器端传递到客户端。

  • 我正在尝试使用JQuery在Ajax中向请求添加头。 以下是代码:- 然后我使用了要求(要求是chrome火狐插件,我们可以手动添加一个标题到请求)。 手动添加标题后:- 在这两个pics请求头中,“ACCESS-CONTROL-request-HEADERS”中都有x-auth-token,但第二个pic中有“x-auth-token”头和头值,而第一个pic中没有。 所以我的问题是如何使用JQ

相关阅读