jquery - jquery ajax实际是如何工作的

标签 jquery

假设我有一个像这样的表单(取自一本关于 jquery 的书):

<body>
<form>
<label>Enter your Name</label>
<input type="text" name="uname" class="uname"/> <br/>
<input type="submit" id="submit"/>
</form>
<div id="message"></div>
</body>

还有一个像这样的ajax函数:

$(document).ready(function() {
   $('#submit').click(function () {
   var name = $('.uname').val();
   var data = 'uname=' + name;
      $.ajax({
         type:"POST",
         url:"welcome.php",
         data: data,
         success: function (html) {
            $('#message').html(html);
         }
      });
      return false;
   });
});

脚本文件如下所示:

<?php
$name = $_POST['uname'];
echo "Welcome ". $name;
?>

它会起作用,但这是我无法理解的。如果welcome.php脚本从POST数组中获取$name的值,为什么它需要通过ajax请求将数据发送给它? POST 数组肯定已经包含该信息了吗?

另外,我的理解是ajax请求采用键/值对的形式,但数据以uname=name的形式发送,但键/值对通常没有等号。

这里发生了什么 - 它有效,但对我来说没有意义,我讨厌仅仅输入我死记硬背学到的代码。

最佳答案

jQuery AJAX 异步工作。该表单不会被发布,因为您可以看到它没有在表单标记上设置操作或方法属性。

jQuery 拦截按钮单击并设置一个新的异步请求,然后将数据添加到该请求并将其发布到服务器。

关于jquery - jquery ajax实际是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004867/

相关文章:

javascript - jquery.delegate 什么时候调用事件处理器?

php - 像 facebook 在墙贴中那样向下滚动时加载内容

javascript - 具有多个可见项目的 jquery 滚动条

jquery - 订阅 onChange jQuery dart

javascript - 对不同的页面和 div 使用一个 ajax 调用?

javascript - 改进 HTML5 视频和 jQuery 代码以提高效率

jquery - 如何在页面加载前加载 load jquery

jquery - 在 jQuery 中添加/删除的最有效方法

javascript - 如何让 Match 返回 INT 而不是数组

javascript - 页面加载时如何关注特定选项卡