JQUERY 基础教程
JQUERY 效果
JQUERY 操纵
JQUERY 高级教程
JQUERY 示例
JQUERY 参考资料

jQuery Ajax GETPOST 请求

在本教程中,您将学习如何使用 jQuery 通过 HTTP GET 或 POST 方法通过 Ajax 从 Web 服务器发送和接收数据。

jQuery $.get()$.post() 方法

jQuery 的 $.get()$.post() 方法从 web 服务器为 异步发送和检索数据 提供了简单的工具。 除了一个主要区别之外,这两种方法几乎相同。 $.get() 使用 HTTP GET 方法 发出 Ajax 请求,而 $.post() 使用 HTTP POST 方法 发出 Ajax 请求。

这些方法的基本语法可以通过以下方式给出:

$.get(URL, data, success);   —Or—   $.post(URL, data, success);

上述语法中的参数含义如下:

  • 必需的 URL 参数指定将请求发送到的 URL。
  • 可选的 data 参数指定一组与请求一起发送到 Web 服务器的查询字符串(即键/值对)。
  • 可选的 success 参数基本上是一个回调函数,如果请求成功则执行。 它通常用于检索返回的数据。

注意: HTTP GET 和 POST 方法用于将请求从浏览器发送到服务器。 这些方法之间的主要区别在于将数据传递到服务器的方式。 查看GET 和 POST 方法的教程,了解这两种方法的详细解释和比较。


使用 jQuery 使用 AJAX 执行 GET 请求

以下示例使用 jQuery $.get() 方法使用 HTTP GET 方法向"date-time.asp"文件发出 Ajax 请求。 它只是检索从服务器返回的日期和时间,并将其显示在浏览器中,而无需刷新页面。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery get() Demo</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $.get("date-time.asp", function(data){
            // Display the returned data in browser
            $("#result").html(data);
        });
    });
});
</script>
</head>
<body>
    <div id="result">
        <h2>Content of the result DIV box will be replaced by the server date and time</h2>
    </div>
    <button type="button">Load Date and Time</button>
</body>
</html>

这是我们的"date-time.asp"文件,它简单地输出服务器的当前日期和时间。

示例

Download
<?php
// 从服务器返回当前日期和时间
echo date("F d, Y h:i:s A");
?>

提示:如果您在 PC 上本地运行这些示例时遇到任何困难,请查看 jQuery Ajax 加载 上的教程以获取解决方案。

您还可以通过请求向服务器发送一些数据。 在以下示例中,jQuery 代码向"create-table.asp"发出 Ajax 请求,并随请求向服务器发送一些附加数据。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery get() Demo</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        // 从页面上的输入元素获取值
        var numValue = $("#num").val();
        
        // 使用 get 将输入数据发送到服务器
        $.get("create-table.asp", {number: numValue} , function(data){
            // Display the returned data in browser
            $("#result").html(data);
        });
    });
});
</script>
</head>
<body>
    <label>Enter a Number: <input type="text" id="num"></label>
    <button type="button">Show Multiplication Table</button>
    <div id="result"></div>
</body>
</html>

这是我们的"create-table.asp"文件的 PHP 脚本,它简单地输出用户单击按钮时输入的数字的乘法表。

示例

Download
<?php
$number = htmlspecialchars($_GET["number"]);
if(is_numeric($number) && $number > 0){
    echo "<table>";
    for($i=0; $i<11; $i++){
        echo "<tr>";
            echo "<td>$number x $i</td>";
            echo "<td>=</td>";
            echo "<td>" . $number * $i . "</td>";
        echo "</tr>";
    }
    echo "</table>";
}
?>

使用 jQuery 使用 AJAX 执行 POST 请求

POST 请求与 jQuery 中的 GET 请求相同。 因此,通常应该使用 $.get() 还是 $.post() 的方法基本上取决于服务器端代码的要求。 如果要传输大量数据(例如表单数据),则需要使用 POST,因为 GET 对数据传输有严格的限制。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery post() Demo</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
    $("form").submit(function(event){
        // 阻止表单正常提交
        event.preventDefault();
        
        /* 序列化提交的表单控件值,以随请求发送到 Web 服务器 */
        var formValues = $(this).serialize();
        
        // 使用 post 发送表单数据
        $.post("display-comment.asp", formValues, function(data){
            // 在浏览器中显示返回的数据
            $("#result").html(data);
        });
    });
});
</script>
</head>
<body>
    <form>
        <label>Name: <input type="text" name="name"></label>
        <label>Comment: <textarea cols="50" name="comment"></textarea></label>
        <input type="submit" value="Send">
    </form>
    <div id="result"></div>
</body>
</html>

这是我们的"display-comment.asp"文件,它简单地输出用户输入的数据。

示例

Download
<?php
$name = htmlspecialchars($_POST["name"]);
$comment = htmlspecialchars($_POST["comment"]);
echo "Hi, $name. Your comment has been received successfully." . "
"; echo "Here's the comment what you've entered: $comment"; ?>

现在您已经了解了如何使用 jQuery 异步执行各种 Ajax 操作,例如加载数据、提交表单等。 在结束本章之前,请查看另外一个 Ajax 的经典示例,它将向您展示如何使用 jQuery 根据在地区下拉列表中选择的选项来填充州或城市下拉列表。

Advertisements