zoukankan      html  css  js  c++  java
  • 322 $.ajax()方法:基本使用,传递请求参数,beforeSend(),serialize(),serializeArray()


    data属性值:
    (1)对象、查询字符串皆可;
    (2)服务器端要求传递json格式的字符串时,要用JSON.stringify()把json对象转为json字符串。
    


    01.$.ajax方法基本使用.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>$.ajax方法基本使用</title>
    </head>
    
    <body>
        <button id="btn">发送请求</button>
        <script src="/js/jquery.min.js"></script>
        <script>
            $('#btn').on('click', function() {
                $.ajax({
                    type: 'post', // 请求方式
                    // 请求地址【如果同源,即协议、域名、端口都相同,可不用写完整的请求地址。】
                    url: '/base', 
                    // 请求成功以后函数被调用
                    success: function(response) {
                        // response为服务器端返回的数据
                        // 方法内部会自动将json字符串转换为json对象
                        console.log(response);
                    },
                    // 请求失败以后函数被调用
                    error: function(xhr) {
                        console.log(xhr)
                    }
                })
            });
        </script>
    </body>
    
    </html>
    

    02.$.ajax方法传递请求参数.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>$.ajax方法基本使用</title>
    </head>
    
    <body>
        <button id="btn">发送请求</button>
        <script src="/js/jquery.min.js"></script>
        <script>
            var params = {
                name: 'wangwu',
                age: 300
            }
    
            $('#btn').on('click', function() {
                $.ajax({
                    type: 'post', // 请求方式
                    // 请求地址 【如果协议、域名、端口都相同,可不用写完整的请求地址。】
                    url: '/user', 
                    // 向服务器端发送的请求参数
                    // 自动转换成 name=zhangsan&age=100,然后发送给服务器端
                    // data: {
                    //     name: 'zhangsan',
                    //     age: 100
                    // },
                    // 服务器端要求传递json格式的字符串时,要用JSON.stringify()把json对象转为json字符串。
                    data: JSON.stringify(params),
                    contentType: 'application/json', // 指定参数的格式类型
                    // 请求成功以后函数被调用
                    success: function(response) {
                        // response为服务器端返回的数据
                        // 方法内部会自动将json字符串转换为json对象
                        console.log(response);
                    }
                })
            });
        </script>
    </body>
    
    </html>
    

    03.beforeSend方法的说明.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>$.ajax方法基本使用</title>
    </head>
    
    <body>
        <button id="btn">发送请求</button>
        <script src="/js/jquery.min.js"></script>
        <script>
            $('#btn').on('click', function() {
                $.ajax({
                    type: 'post',
                    url: '/user',
                    // 在请求发送之前调用
                    beforeSend: function() {
                        alert('请求不会被发送')
                        return false; // 请求不会被发送
                    },
                    // 请求成功以后函数被调用
                    success: function(response) {
                        // response为服务器端返回的数据
                        // 方法内部会自动将json字符串转换为json对象
                        console.log(response);
                    }
                })
            });
        </script>
    </body>
    
    </html>
    

    serialize(),serializeArray()

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>serialize方法说明</title>
    </head>
    
    <body>
        <form id="form">
            <input type="text" name="username">
            <input type="password" name="password">
            <input type="submit" value="提交" id="subBtn">
        </form>
        <script src="jquery-1.12.4.min.js"></script>
    
        <script type="text/javascript">
            // 补充的代码
            let subBtn = document.querySelector('#subBtn')
            $(subBtn).on('click', function() {
                let res1 = $('#form').serialize()
                let res2 = $('#form').serializeArray()
                console.log(res1); // username=eee&password=555
                console.log(typeof res1); // string
                console.log(res2) // [{name: "username", value: "eee"}, {name: "password", value: "555"}]
                console.log(res2 instanceof Array) // true
            })
    
    
            $('#form').on('submit', function() {
                // 将表单内容拼接成字符串类型的参数
                // var params = $('#form').serialize();
                // console.log(params)
                serializeObject($(this));
                return false;
            });
    
            // 将表单中用户输入的内容转换为对象类型
            function serializeObject(obj) {
                var result = {}; // 处理结果对象
                // [{name: 'username', value: '用户输入的内容'}, {name: 'password', value: '123456'}]
                var params = obj.serializeArray();
    
                // 循环数组 将数组转换为对象类型
                $.each(params, function(index, value) {
                    result[value.name] = value.value;
                })
    
                // console.log(result); // {username: "eee", password: "555"}
                return result; // 将处理的结果返回到函数外部
            }
        </script>
    </body>
    
    </html>
    
  • 相关阅读:
    javascript 获取event
    IE与火狐下兼容(阻止冒泡事件)
    IE和FireFox中JS兼容之event
    不同浏览器中childNodes获取子节点个数
    文档结构和遍历
    爬取拉钩Java招聘数据
    爬取糗事百科的图片
    爬虫框架scrapy安装
    会爬电影神器,是一种什么样的体验,你懂得!!!!!!!
    利用Python的unittest单元测试框架的discover方法批量执行脚本用例
  • 原文地址:https://www.cnblogs.com/jianjie/p/12356992.html
Copyright © 2011-2022 走看看