ajax root,ajax基础 - root_jh - OSCHINA - 中文开源技术交流社区

AJAX简介

ajax=异步JavaScript和XML

ajax是一种用于创建快速动态网页的技术

基于interner标准

建立在以下基础之上的网页技术

XMLHttpRequest 对象 (异步的与服务器交换数据)

JavaScript/DOM (信息显示/交互)

CSS (给数据定义样式)

XML (作为转换数据的格式)

AJAX特点

无需重新加载整个网页的情况下,便能够更新部分网页

通过在后台与服务器进行少量数据交换,使网页实现异步更新

和传统网页区别

不使用ajax:每次提交更新内容必须要重载整个页面

使用ajax:更新内容不需要重载整个页面

原生ajax

ajax相关语句

释义

obj = XMLHttpRequest()

jQuery实际调用的对象,也是ajax基础必备条件

obj.onreadystatechange

指定回调函数

obj.redystate

状态码 指定回调函数状态,执行过程判断

obj.responseText

接收完成的数据

obj.open()

建立连接请求

obj.setRequestHeader()

发送的数据请求头

obj.send()

发送数据

redystate状态码

释义

0

未初始化,尚未调用open()方法

1

启动,调用open()但未调用send()方法

2

发送,调用send()方法,但未接受到响应

3

接收,已经接收到部分响应数据

4

完成,接受到全部响应数据

原生ajax示例

function Text(){

var xhr = new XMLHttpRequest(); #创建一个空对象

xhr.onreadystatechange = function(){ #指定回调函数

if (xhr.readyState == 4){ #回调函数状态

console.log("返回信息:",xhr.responseText)

}

};

xhr.open('GET','index.html?p=1'); #建立GET方式请求,并发送p=1数据

xhr.open('POST','index.html'); #建立POST方式请求

xhr.setRequestHeader('Conten-Type','application/x-www-foorm-urlencoded;charset-UTF-8');

#POST数据请求头,若不声明请求头只有请求体传输到后端,则Django无法解析,后端只有 request.body 才有数据体

xhr.send("p=456"); #建立的POST请求发送的数据

}

jQuery使用ajax

jQuery向后端传递参数

function 发送函数(){

$.ajax({

url:'/index.html', #传递路径,后加?参数为GET提交形式

type:'POST', #POST提交方式

#type:'GET', #GET提交形式

data:{'username':'root','password:'123'}, #发送数据

traditional:true, #用于传输列表/数组,不加则默认键多加个中括号

cache: false, #上传文件无需缓存

processData: false, #用于对data参数进行序列化处理

contentType: false, #用于传输包含对象数组嵌套等复杂的数据时候使用

success:function(arg){ #回调函数,arg是服务端返回的数据

函数体

}

error:function(){ #执行错误返回的错误信息

函数体

}

})

}

后端接收

单字典传输:request.提交方式.get('提交值的键') 字典包含列表/数组传输:request.提交方式.getlist('提交值的键')

def 接收函数(request):

user = request.POST.get('username') #接收发送过来的get请求的用户名

pwd = request.POST.get('password') #接收发送过来的get请求的密码

return 返回值

伪造ajax发送请求

特性:form + iframe 页面不刷新提交数据 原理:利用 iframe 标签提交数据不刷新的特性,结合 form 表单利用 iframe 通道往后端发送数据

function showtime(ths) {

alert("函数已触发!")

console.log("iframe标签中嵌套的 windows 内容",ths.contentWindow)

console.log("iframe标签中嵌套的某个子标签内容",ths.contentWindow.document.body.innerHTML)

console.log("jQuery方式获取某个子标签内容",$(ths).contents().find('body').html())

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值