Django之原生Ajax操作

Ajax主要就是使用 【XmlHttpRequest】对象来完成请求的操作,该对象在主流浏览器中均存在(除早起的IE),Ajax首次出现IE5.5中存在(ActiveX控件)。

先通过代码来看看Ajax吧!

views.py
from django.shortcuts import render,redirect,HttpResponse
from django import  forms
from django.forms import fields
from app_01 import models

def ajax(request):
    return render(request, ‘ajax.html‘)

def ajax_json(request):
    import time
    time.sleep(3)
    print(request.POST)   #打印request.POST内的内容
    ret = {‘code‘: True , ‘data‘: request.POST.get(‘username‘)}
    import json
    return HttpResponse(json.dumps(ret))     #向前台发送ret,利用json.dumps()将ret变为字符串
ajax.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <input type="text"/>
    <input type="button" value="Ajax1" onclick="Ajax1();" />

<form action="/ajax_json/" method="POST" >
        <input type="text" name="username" />
        <input type="text" name="email" />
        <input type="submit" onclick="sumitForm();" value="Form提交"/>
    </form>

<script type="text/javascript" src="/static/jquery-1.12.4.js"></script>
    <script>
function Ajax1(){
            var xhr = getXHR();
            //var xhr = new XMLHttpRequest();         //创建XMLHttpRequest对象
            xhr.open(‘POST‘, ‘/ajax_json/‘,true);  //指定用post发,发送到ajax_json里,是否异步为true,默认不填也为true
            xhr.onreadystatechange = function(){     //onreadystatechange为回调函数,当匿名函数内的状态发生变化时就会执行,每一次都会执行
                if(xhr.readyState == 4){             //一共5个状态,当状态为4时,启动使其发生变化
                    // 接收完毕
                    var obj = JSON.parse(xhr.responseText); //responseText为返回值,返回html的返回值
                    console.log(obj);
                }
            };
            xhr.setRequestHeader(‘k1‘,‘v1‘);   //发送GET请求头,利用csrf时使用
            xhr.setRequestHeader(‘Content-Type‘, ‘application/x-www-form-urlencoded; charset-UTF-8‘);  //发送post请求时
            xhr.send("name=root;pwd=123");   //发送数据,发送的只能是字符串
        }
</script>
</body>
</html>

点击Ajax1,可以看到请求已经发送过去

xhr.setRequestHeader(‘Content-Type‘, ‘application/x-www-form-urlencoded; charset-UTF-8‘);  //发送post请求时
xhr.send("name=root;pwd=123");   //发送数据,发送的只能是字符串

通过这两行代码,可以知道已经向后台发送了请求

看完这些代码,就差不多知道原生ajax是怎么发送请求的了吧!

那下面就说说原生ajax的方法和属性

1、XmlHttpRequest对象介绍

XmlHttpRequest对象的主要方法:

a. void open(String method,String url,Boolen async)
   用于创建请求
    
   参数:
       method: 请求方式(字符串类型),如:POST、GET、DELETE...
       url:    要请求的地址(字符串类型)
       async:  是否异步(布尔类型)
 
b. void send(String body)
    用于发送请求
 
    参数:
        body: 要发送的数据(字符串类型)
 
c. void setRequestHeader(String header,String value)
    用于设置请求头
 
    参数:
        header: 请求头的key(字符串类型)
        vlaue:  请求头的value(字符串类型)
 
d. String getAllResponseHeaders()
    获取所有响应头
 
    返回值:
        响应头数据(字符串类型)
 
e. String getResponseHeader(String header)
    获取响应头中指定header的值
 
    参数:
        header: 响应头的key(字符串类型)
 
    返回值:
        响应头中指定的header对应的值
 
f. void abort()
 
    终止请求

XmlHttpRequest对象的主要属性:

a. Number readyState
   状态值(整数)
 
   详细:
      0-未初始化,尚未调用open()方法;
      1-启动,调用了open()方法,未调用send()方法;
      2-发送,已经调用了send()方法,未接收到响应;
      3-接收,已经接收到部分响应数据;
      4-完成,已经接收到全部响应数据;
 
b. Function onreadystatechange
   当readyState的值改变时自动触发执行其对应的函数(回调函数)
 
c. String responseText
   服务器返回的数据(字符串类型)
 
d. XmlDocument responseXML
   服务器返回的数据(Xml对象)
 
e. Number states
   状态码(整数),如:200、404...
 
f. String statesText
   状态文本(字符串),如:OK、NotFound...

2、跨浏览器支持

XmlHttpRequest
  ·IE7+, Firefox, Chrome, Opera, etc.
ActiveXObject("Microsoft.XMLHTTP")
  ·IE6, IE5

原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/9131727.html

时间: 2024-08-02 21:30:40

Django之原生Ajax操作的相关文章

ASP.NET学习笔记(5)——原生Ajax基本操作

说明(2017-11-4 15:32:49): 1. 回北京后又快一个月了,上次在家写的下回预告,到底是没把加水印写完,而且这次也不想写.. 2. 上次许的愿,十月份看完asp.net,已经泡汤了,翻了一下,一共十天的课程,我搞不好大半年就看了6天的.. 3. 总而言之,这次的笔记是用JavaScript的原生ajax操作,应该只是了解写法吧,因为下一讲就是jQuery封装好的ajax操作了. Ajax_Get.aspx: 1 <%@ Page Language="C#" Aut

Django的日常-AJAX

目录 Django的日常-AJAX AJAX简介 AJAX与JQ的一个实例 AJAX与contentType AJAX传json格式 AJAX传文件 Django的日常-AJAX AJAX简介 首先AJAX是一种无需重新加载整个网页的前提下,能够更新部分网页的技术,他并不是一种新的编程语言,而是一种使用现有标准的新方法,是基于原生JavaScript开发的,他可以用于创建快速动态网页. AJAX最大的特点就是局部刷新以及异步提交,局部刷新,顾名思义就是可以在不刷新整个页面的情况下局部刷新,而异步

Js原生Ajax和Jquery的Ajax

一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡死 2.Ajax的运行原理 页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面1 功能. 二

ajax操作

一,原生ajax,异步回调. GET传值方式: <script> function add1() { //使用原生ajax需要使用XMLHttpRquest对象 var obj=new XMLHttpRequest();//声明一个XML对象obj obj.onreadystatechange=function () { //回调函数,数据发生改变时触发操作 if(obj.readyState==4){ //readyState有0到4五种状态,4代表传值完成 alert(obj.respon

分析一下jquery中的ajax操作

在web前端开发中,ajax是很重要的一项技术,用原生写起来很是麻烦,需要一大堆js代码,而到了jq里就被精简了许多,一起来看看: jquery中的ajax分为三种方式: 1.$.get(),get方式获取 例子: $('.btn').click({ $.get('1.txt',function(data){ //'1.txt'为服务器上的文档,data为获取到的数据 alert(data); }); }) 2.$.post(),post方式获取 例子: $('.btn').click({ $.

JavaWEB小知识学习--原生AJAX

AJAX的作用局部刷新,作为提升页面体验还是很重要的,不过大家都说对SEO不是很友好,一直使用jQuery封装的AJAX,没有了解过原生的是什么样子的,特此学习下,补充知识 1.原生AJAX的Get方式 页面中定义一个a标签.想要实现的效果点击a标签,能够请求服务器,弹出服务器返回的字段 <body> <a href="/ajaxTest">点击我!</a> </body> 对应的AJAX请求如下,注释步骤很详细的 //具体的函数可以参考

原生ajax详解

原生Ajax: Ajax基础:--ajax:无刷新数据读取,读取服务器上的信息--HTTP请求方法:    --GET:用于获取数据,如浏览帖子    --POST:用于上传数据,如用户注册 --GET与POST的区别:    GET:--通过网址传递(放入url中),会将传递的数据放到网址上面,--名字=值&名字=值        --get方式容量小        --安全性低        --有缓存    POST:--不通过网址传递         --post容量较大,一般可达2G 

Django中的Ajax详解

AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML".即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML). 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求:异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求.AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新:(这一特点给用户的感受是在不知不觉中完成请

原生ajax及其与服务器交互(java)学习笔记

ajax主要用于与服务器进行异步交互数据(当然技术上也能做同步处理). 因为传统的非ajax的web交互,是整个浏览器将数据传到后台处理,而后台处理时,用户只能等待,这样就非常效率低下.而且服务器会返回整个html页面,用户还得等待整个页面加载.这样是非常浪费资源. ajax就可以做到在用户触发ajax请求的同时,任然能够进行操作,并且服务处理且返回数据时不进行页面重新加载,而用户也可以得到想要的数据. 以下直接通过代码和相应注释解释ajax请求过程 1 function buttonOnCli