美文网首页
1.4 ajax流程-open方法和表单

1.4 ajax流程-open方法和表单

作者: 小豌豆书吧 | 来源:发表于2017-11-10 19:34 被阅读12次

ajax中的open方法类似form:
表单:数据的提交
action: 数据提交的地址,默认是当前页面
method:数据提交的方式,默认是get方式
1.get
把数据名称和数据值用=连接,如果有多个的话,会把多个数据组合用&进行连接,然后把数据放到url?后面传到指定页面(见效果图)
(数据的提交要对应,前端用get方式,后端也要用get方式)
url长度限制的原因,我们不要通过get方式传递过多的数据
2.post
理论上数量没有限制,
php.ini可以修改该数量,默认为post_max_size = 8M
enctype:提交的数据格式,默认是application/x-www-form-urlencoded
案例6-form_get.html

<body>
  <form action="1.get.php">
    <input type="text" name="username" />
    <input type="text" name="age" />
    <input type="submit" value="提交" />
  </form>
</body>

1.get.php:

<?php 
header('content-type:text/html;charset="utf-8"');
error_reporting(0);

$username = $_GET['username'];
$age = $_GET['age'];

echo "你的名字:{$username},年龄:{$age}";

效果图展示:


6-表单get方式.gif

案例7-form_post方式.html

<form action="1.post.php" method="post">
  <input type="text" name="username" />
  <input type="text" name="age" />
  <input type="submit" value="提交" />
</form>

1.post.php

<?php 
header('content-type:text/html;charset="utf-8"');
error_reporting(0);

$username = $_POST['username'];
$age = $_POST['age'];

echo "你的名字:{$username},年龄:{$age}";
7-form_post方式.gif

补充后端知识:
1)$_REQUEST:可以获取get方式提交过来的数据,也可以获取post方式提交的数据

Ajax过程具体说明:

window.onload = function() {
    
    var oBtn = document.getElementById('btn');
    
    oBtn.onclick = function() {
        
        //打开浏览器
        /*
        1.创建一个ajax对象
        // 1) 先定义一个对象
        var xhr = null;

        // 2) 然后兼容性处理:
        try {
            xhr = new XMLHttpRequest();
        } catch (e) {
            xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }

        //在地址栏输入地址
                /*
                2.创建一个新的HTTP请求,
                并指定该HTTP请求的方法、URL及验证信息
               */

        /*
        open方法
            参数:
            1.打开方式
            2.地址(发送请求的地址)
            3.是否异步
                异步:非阻塞 前面的代码不会影响后面代码的执行
                同步:阻塞 前面的代码会影响后面代码的执行
        */
        xhr.open('get','1.txt',true);
        //提交 发送请求
        //alert(1);
                //4.发送HTTP请求;
        xhr.send();
        
        //alert(1)
        
        //alert( xhr.responseText );
        
        //等待服务器返回内容
                //3.设置响应HTTP请求状态变化的函数;
        xhr.onreadystatechange = function() {
            //5.获取异步调用返回的数据;
            if ( xhr.readyState == 4 ) {
                alert( xhr.responseText );
            }
            
        }
        
    }
}
  • 同步:阻塞 前面的代码会影响后面代码的执行;(一个工作未完成是不会进行下一个的)
    阻塞模式举例:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $(function(){})  //阻塞模式,只有jquery加载完才可以执行此行代码
</script>
  • 异步:非阻塞 前面的代码不会影响后面代码的执行
    非阻塞模式举例:
// 非阻塞模式
setTimeout(function(){
  alert(1);
},2000);
alert(2);

相关文章

网友评论

      本文标题:1.4 ajax流程-open方法和表单

      本文链接:https://www.haomeiwen.com/subject/ezgdmxtx.html