Ajax常用方法

作者:Jasmine - 2016年07月06日

ajax请求的过程:

1.创建XML对象

2.打开服务器链接open

3.发送请求send

4.接受服务器响应



1.$.ajax();

常用的参数:

asycn:设置同步或异步,默认值为true即异步

complete(XHR,TS):无论请求是否成功都调用

contentType:设置编码类型

data:发送的数据,将自动转为字符串

datatype:返回数据的类型,XML| html | json | script | text | jsonp |

success:请求成功的回调函数

URL:请求的地址

type:请求的类型, get/post

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="">
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <style>
    .red{color:red;}
    </style>
</head>
<body>
    <div class="box"></div>
</body>
<script>
    function getlpcase(){
        $.ajax({
            url:"../loupan_ajax.php",
            type:'GET',
            data: {action:'getLoupan',ip:''},
            datatype:'json',
            success:function(data){
                    var _data = JSON.parse(data);
                    console.log(_data);
                    var html_txt = '';
                    for(var o in _data.lp_data){
                        
                        if(_data.lp_data[o].loupan_doors>500){
                            html_txt +='<a href="http://sjq.homekoo.com/thread-'+_data.lp_data[o].thread_id+'-1-1.html" target="_blank" class="red">'+_data.lp_data[o].loupan_name+'</a><br>';
                        }else{
                            html_txt +='<a href="http://sjq.homekoo.com/thread-'+_data.lp_data[o].thread_id+'-1-1.html" target="_blank">'+_data.lp_data[o].loupan_name+'</a><br>';
                        }.
                        $('.box')html(html_txt);
                    }
            }
        })
    }
    getlpcase();
</script>
</html>

2.$.post()

常用的参数:

url:请求的地址

data:发送的数据

success:回调函数

dataType:数据类型

3.$.get()

常用的参数:

url:请求的地址

data:发送的数据

success:回调函数

dataType:数据类型

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="">
    <script src="jquery-1.11.0.min.js"></script>
    <style>
    .red{color:red;}
    </style>
</head>
<body>
    <div class="box"></div>
</body>
<script>
    function getlpcase(){
        $.get("../ajax.php",{action:'moveLp'},"html",function(data){
                $('.box').html(data)
            }
        )
    }
    getlpcase();
</script>
</html>

get和post的区别:get数据大小限制在1kb,而且get会把数据追加到URL中,get会被浏览器缓存起来别人可以在浏览记录中读取到数据,因此不安全。post反之。

4.$(sel).load();

请求文档内容并插入到里面

URL:请求的地址

data:数据

function:返回后要做的动作

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="">
    <script src="jquery-1.11.0.min.js"></script>
    <style>
    .red{color:red;}
    </style>
</head>
<body>
    <div class="con"></div>
</body>
<script>
    $('.con').load('dome.html .box',function(response,status,xhr){
        console.log(status)
    })
</script>
</html>

5.serialize()

序列化表单元素,返回name1=value1&name2=value2....

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="">
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>

</head>
<body>
    <div class="box">
            <form action="">
                <input type="text" id='a' name='a'/>
                <input type="text" id='b' name='b'/>
                <select id="c" name='c'>
                    <option value="1">1</option>
                    <option value="2">2</option>
                <input type="radio" id='d' name='d' value="8" />
                </select>
                <input type="button"/>
            </form>
    </div>
</body>
<script>
$('input[type=button]').click(function(){
    document.write($('form').serialize())
})
</script>
</html>

6.serializeArray()

将表单序列化为json数组

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="">
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>

</head>
<body>
    <div class="box">
            <form action="">
                <input type="text" id='a' name='a'/>
                <input type="text" id='b' name='b'/>
                <select id="c" name='c'>
                    <option value="1">1</option>
                    <option value="2">2</option>
                </select>
                <input type="radio" id='d' name='d' value="8" />
            </form>
        <input type="button"/>
    </div>
</body>
<script>
$('input[type=button]').click(function(){
    document.write(JSON.stringify(($('form').serializeArray())))
})
</script>
</html>

将表单直接序列化为json格式的插件

   (function($){
        $.fn.serializeJson=function(){
            var serializeObj={};
            var array=this.serializeArray();
            var str=this.serialize();
            $(array).each(function(){
                if(serializeObj[this.name]){
                    if($.isArray(serializeObj[this.name])){
                        serializeObj[this.name].push(this.value);
                    }else{
                        serializeObj[this.name]=[serializeObj[this.name],this.value];
                    }
                }else{
                    serializeObj[this.name]=this.value;
                } return serializeObj;
        };
    })(jQuery);
            });

JSON.parse(str)将json字符串转成json对象

JSON.stringify(str)将json对象转为json字符


本文作者: Jasmine

本文链接: https://www.jianbaizhan.com/article/462

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!