AJAX请求
AJAX是异步的javascript和XML;
Form表单是一个同步的过程,当form表单提交的时候,页面是一定要切换的,同时,页面当中正在执行的某些个动作会立刻停止;
当发送的请求是异步的时候,他不会影响当前界面的跳转过程。
页面可以保留在当前过程,AJAX请求发出去以后,等待后台给一个返回,拿到了返回,才决定是修改当前页面内容还是页面跳转等,如果返回的内容没有说进行页面跳转,就还留在当前页面,就继续干页面当前正在做的事情,它不需要等待这个请求执行完,再去执行其他的过程。
现在AJAX基本不会用原声的请求,而是使用第三方框架将请求发出去。——jQuery插件
$就是将Window和document整合到一起的一个对象,称为jQuery的根对象。
前端发的异步请求给一串字,发的是同步请求给一个页面去跳转。
1、AJAX发送请求的方式
function test() {
//AJAX请求
$.ajax({
//url——访问的地址
url:"/web/login.do",
//type——只有两个值——post,get
type:"post", ;
//data——给后台发请求时传的参数
data:"username=t&pwd=1234",
//成功时的回调 只要请求回的是200就会进入
success:function (data) {
alert(data)
},
//失败时的回调 除非后台出错回一个500才会进入,否则进入success
error:function (data) {
}
});
}
一般来说,get请求会把参数缀到后面,一般带敏感信息就不会使用get请求,而使用post请求。
2、AJAX其他发送请求的方式
这时候一定是按照get请求发送的,不用再加type
$.get({
url:"/web/login.do",
data:"username=t&pwd=1234",
success:function (data) {
alert(data)
},
error:function (data) {
}
});
这时候一定是按照post请求发送的,不用再加type
$.post({
url:"/web/login.do",
data:"username=t&pwd=1234",
success:function (data) {
alert(data)
},
error:function (data) {
}
});
如果想让一打开就发送AJAX 请求,就直接$.ajax,不用封装在方法里。它就是方便我们操作DOM和BOM的。
获得html页面container的值
id选择器
var a = $ ('#container');//拿出container的id .是class,#是id
单标签
a.val("sss");
//val() —— 不传参数时拿的是value值,当传参数时,就改变这个value值,val一般是拿的是input里的,即带value的标签
双标签
var b =a.text();//拿出其中的文本内容 a.text("dfsd");设置里面的文本
var b = a.html();//拿出其中带标签的内容 a.html(" ");设置里面的html
var b = a.attr("type","text");//当只有一个参数type时拿出它的type,当有两参数时改变它将它type类型变为text
console.log(b);
calss选择器
var a = $('.container')[1];//当里面写class选择器时后面一定要加[],因为id只有一个而class可能有多个
改变元素内容的方法
JSON (Javascript object navigator)
里面放的是k-v对,每个k-v对使用逗号隔开
{
key:value,
key : value
}
//回复的是这样的 key --value 对
//回复的k-v对一般包括下面三个
//status--->int类型 这个业务执行成功与否
//info --->string类型 执行不成功的话通知一下哪里不成功
//data--->Object类型 返回的数据
var a = $.parseJSON(data); 将data变为一个JSON对象
JSONObject object = new JSONObject();
object.put("status",1); //1代表执行成功
如果result是一个list,传进来就变成了一个JSON数组;如果是一个map,那就会变成一个JSON对象;如果是对象,在对象里面写好属性和方法,然后它就自己把这个映射关系创建好了
object.put("data",result);
resp.getWriter().println(object.toJSONString);