ajax的简单使用

Posted 不忘初心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax的简单使用相关的知识,希望对你有一定的参考价值。

AJAXAsynchronous javascript And XML

翻译成中文就是异步JavascriptXML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。

  • 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;
  • 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。

 

AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受是在不知不觉中完成请求和响应过程)

  比如在github注册时:当你输入用户名密码是,他就是执行的局部刷新

                

 

 

 

优点:

  • AJAX使用Javascript技术向服务器发送异步请求
  • AJAX无须刷新整个页面

 

使用JQuery实现ajax

  type是发送的方法

  data是发送的数据

  后端接收到方法和数据个执行返回一个数据,到success里拿到的data就是后端返回的数据

<button id="send">ajax_test</button>
<script>

       $("#send").click(function(){

           $.ajax({
               url:"/ajax_test/",
               type:"POST",
               data:{username:"wy",password:123},
               success:function(data){
                   console.log(data)
               },
               
               error: function (jqXHR, textStatus, err) {
                        console.log(arguments);
                    },

               complete: function (jqXHR, textStatus) {
                        console.log(textStatus);
                },

               statusCode: {
                    \'403\': function (jqXHR, textStatus, err) {
                          console.log(arguments);
                     },

                    \'400\': function (jqXHR, textStatus, err) {
                        console.log(arguments);
                    }
                }

           })

       })

</script>

 

实例:

写一个简单的计算器

后端:

url:url(r\'^sum/\', views.sum),
view:
def sum(request):
    if request.method==\'GET\':
        return render(request,\'sum_count.html\',locals())
    if request.method==\'POST\':
        num1=int(request.POST.get(\'num1\'))
        num2=int(request.POST.get(\'num2\'))
        return HttpResponse(num1+num2)

前端:

<input type="text" id="num1">+<input type="text" id="num2">=<input type="text" id="sum">
<button id="submit">计算</button>


<Script>
    $(\'#submit\').click(
        function () {
            $.ajax({
                url:\'/sum/\',
                method:\'post\',
                data:{
                    num1:$(\'#num1\').val(),
                    num2:$(\'#num2\').val()
                },
                success(data){
                    console.log(data)
                    $(\'#sum\').val(data)
                }
            })
        }
    )
</Script>

 

ajax提交json格式数据

    $("#ajax_test").click(function () {
        var dic={\'name\':\'wy\',\'age\':18}
        $.ajax({
            url:\'\',
            type:\'post\',
            contentType:\'application/json\',  //一定要指定格式 contentType: \'application/json;charset=utf-8\',
            data:JSON.stringify(dic),    //转换成json字符串格式
            success:function (data) {
                console.log(data)
            }

        })

    })

提交到服务器的数据都在 request.body 里,取出来自行处理

 

以上是关于ajax的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

AJAX相关JS代码片段和部分浏览器模型

Javascript代码片段在drupal中不起作用

Node、Express、Ajax 和 Jade 示例

前端面试题之手写promise

Ajax 片段元标记 - Googlebot 未读取页面内容

AJAX 响应:数据(JSON、XML)还是 HTML 片段? [关闭]