今天介绍一下HTML中的Ajax传输有两种特点:
1、Get:一般是前端提交给后台的一种提交形式。
特点:
1、get的URL是“明文”。
2、get的URL长度是有限制的。
3、get相对来说是不安全的。
2、Post
特点:
1、post的URL参数没有显示的。
2、post的URL长度没有限制的。
3、post的相对来说是安全的。
3、同步
在同一时间只在做同一个事情。简单的识别方式:判断页面是否刷新,如果刷新,证明在这个时间,正在做页面刷新或者跳转。
4、异步
在同一个时间可以同时做不同的事情。简单的识别方式。页面上的数据在变化,但是页面并没有刷新或者跳转。可以在firebug下查看(网络),典型的异步就是ajax。
5、Json
一种数据格式。形式为: {"userName":"jack","userLove":["西瓜","苹果"]}
优点:体积小,很多语言都内置解析json的形式。同样传输快。
缺点:可读性差。
6、XML
一种数据格式。形式为:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<resultcode>
200
</resultcode>
</root>
优点:可读性强,很多公司在使用。
缺点:体积大,传输速度较慢。
7、关于跨域
在前端中,跨域是很频繁,但是又基本不被组织所允许。
在json中,如果需要跨域,需要使用jsonp格式返回。
callback({"userName":"jack","userLove":["西瓜","苹果"]});
在这里我记录一下ajax的传输方法
.ajax({
"async" : true, //true:同步 false 异步
"url": "", 请求链接
"dataType" : "json", //返回数据格式
"type": "get", //参数数据方式
"data": {}, //请求的参数
"success" : function( data ){ //成功返回调用的函数
},
"error" : function( data ){ //请求错误调用的函数
}
});
可以这种方式来处理页面信息传输,但有时候在跨域传输中,dataType需要用jsonp形式
但在页面传输中会遇到把字符串转化为json格式,这里可以用到eval函数
eval函数:靠近它,远离它。 eval("JS字符串")
1、eval可以用来把字符串转换成json格式
var str = '{"userName":"jabez","userPwd": "123456" }';
console.log( str );
console.log( eval( "("+ str +")" ) );
2、eval内部执行js字符串操作,包括js操作。
var str = eval( 2+3 );
但这种方式不安全,所以之后又出现了另一种方式 new Function
var str = '{"userName":"jabez","userPwd": "123456" }';
var data = (new Function("", "return "+ str ))();