ajax注意
来源:互联网 发布:mac显示u盘隐藏文件 编辑:程序博客网 时间:2024/04/29 17:13
C:\Users\Anikin\Desktop\ajax
用js异步(非阻塞模式)的操作 XML
1.ajax能且仅能从服务器读取文件(都是以文本的形式存在的或者数据交互),但是有多种应用类型。
注意:字符集编码的问题和缓存问题【缓存的机制:是根据地址缓存,只要地址不一样,
就不会缓存】--解决办法:ajax('a.txt?t='+new Date().getTime(),function(str){.....})
2.eval:计算字符串里面的值和将字符串处理掉(很强大的字符串处理函数),一般是读取服务
器上面的json。
3.ajax原理:http请求的方法:
get--用于获取数据,把数据放在url(网址)里面提交,安全性很低,容量很低,便与分享,
传递类型少
post-用于上传数据,数据放在其他地方提交,post安全一般,容量很大(在64服务器几乎
无限),传递类型多
4,js里面,用一个不存在的变量,会直接出错。如果用一个不存在的属性的时候,会是 underfined;
全局的变量还是全局的属性都是window的一个属性;
同步:阻塞模式 异步:非阻塞
5.创建Ajax对象,
var oAjax = new XMLHttpRequest();
但是在ie6下是有问题的
oAjax = new ActiveXObject("Microsoft.XMLHTTP");
处理兼容也可以使用try,,catch来处理
try{...这句如果有错误就开始执行catch里面,,,,,.}catch(e){.....e代表错误}
链接服务器,
发送请求,
接受返回信息 oAjax.onreadystatechange = function()当状态值改变的时候触发的事件
工作状态:
oAjax.readyState=0,刚初始化完成
oAjax.readyState=1,send调用完成
oAjax.readyState=2,载入完成,已收到全部响应
oAjax.readyState=3,开始解析响应的内容
oAjax.status服务器状态
oAjax.readyState=4,代表结束,但是不代表成功与否oAjax.status==200 代表成功 404
代表找不到 300多是重定向 400多是客户端错去 500多是服务器错误
oAjax.responseText服务器发回来的内容,得到的内容都是字符串的形式。
服务器返回数据的类型所要处理的方法:
xhr.open('post','2.post.php',true);
把字符串转成数组或者json的方式,也就是前后端数据交互
JSON对象,ie兼容可以利用库来实现【http://www.json.org---json2.js】支持json
stringify:
get: 在url后面多余--> ?user=Anikin&password=0928
工作当中请求的处理:
1:get方式,存在缓存, 只能传递字符串
xhr.open('post','2.post.php?user=Anikin&password=0928',true);用这种方式传递,具
体是根据后端给你的接口自己去拼;
消除缓存:xhr.open('post','2.post.php?user=Anikin&password=0925&'+new Date
().getTime(),true);【?t或者&都可以】、
传输中文乱码问题用编码解决encodeURI('张三')
**********************************************************看仔细是encodeURI不是L
xhr.open('post','2.post.php?user='+encodeURI('张三')+'&password=0925?t='+new
Date().getTime(),true);【
2:post方式,不存在缓存。数据提交时跟在请求头里面的。 可以传递任何东西
post方式,数据放在send()里面作为参数传递
xhr.send('user=Anikin&password=0928');
设置请求头,告诉后端的编码格式和文档类型:
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明
发送的数据类型
无需编码,中文也可以传输,因为post是用来提交数据的。
jsonp(json with padding)----解决ajax的跨域限制问题。
其实解决跨域问题总共有三种方式:代理的方式 flash jsonp(最
常用)
实现原理:1.script标签
2.用script标签加载资源是没有跨域问题的
3.通过内填充,在资源加载之前定义好一个函数,这个
函数接受一个参数,函数里面利用这个参数做一些事情,然后需
要的时候通过script标签加载对应的远程文件资源,当远程的文件
被资源加载进来的时候,就会去执行我们前面定义好的函数,并
且把数据当做这个函数的参数传入进去。
fn(..)
面临的问题:1 .当需要的时候才加载资源:动态DOM创建这个标
签
2. 如果用于不同的用途:在后端写成callbcak,写成
活的,在前端就不需要一直的
- ajax注意
- AJAX使用注意点
- ajax注意点
- ajax注意问题
- ajax注意问题
- Ajax上传文件注意
- ajax保存注意异常
- 使用AJAX要注意引号
- ajax树及注意点
- ajax json 传值注意
- Ajax需要注意的几个问题
- ajax--3.转异步注意
- ASP.NET AJAX注意要点1
- ASP.NET AJAX注意要点2
- ASP.NET AJAX注意要点3
- ajax中的键盘事件注意使用keyup
- Ajax中要注意的问题
- AJAX.NET:CascadingDropDown的几点注意
- python---函数
- mysql学习
- WAMP下修改mysql密码
- 2.mysql---约束和数据表操作
- 4.mysql子查询和链接,多表的删除和查询
- ajax注意
- ajax2
- 数据库调优的方法
- css3 学习
- Android之旅
- git 删除远程已经推送过的文件或者文件夹
- js插件汇总
- angularJs(1)
- git and github学习以及入门