ajax与json的学习总结 更新时间:2017-10-12 08:01:56
最近重温了下ajax与json技术,发现又收获了不少,这里记录下,我是一只接触编程8个月的小白,如有错误,还请指出,后面直接上干货。
首先,为什么要学习ajax与ajax的优势?
此文来自: 马开东云搜索 转载请注明出处 网址:
此文原标题: ajax与json的学习总结 来源网址:
以我自己的理解,其实ajax就是方便数据从前端传递到后端。在java中,主要有两种。第一种就是通过html的form表单,通过submit直接传输到后端,但是这个提交有一个坏处,就是服务器端(servlet端)返回数据的话只能是重新跳转一个页面(requet.getRequest.Dispatcher(url)。forward(request,response)或重定向response.sendRedirect(url))来进行处理,这样会很不方便,如果涉及要用户登录验证什么的话岂不是要重新跳转个页面来判断用户是否输入正确?这里的用户体验就很不好,而ajax则实现了异步请求,完美的解决了这个问题。
前端数据传输到后端的通用特点:
前端数据传输到后端无非要三点:请求方式、请求地址、传输的参数(数据)还有就是接收服务器返回的数据进行处理。form表单中的method,action,还有input中的name属性就是来传递这些东西的,而ajax中则更方便
eg:
$.ajax({
type:"post",//请求方式
url:"control.jsp",//请求地址
data:json,//传输的参数,json格式的数据
success:function(data){//服务器返回的数据
}
});
这就是jquery的ajax请求的格式。后面会谈到js的ajax请求,jquery不过是将js的ajax请求封装了下而已,主要是解决了浏览器的兼容问题。
js中的ajax请求:
直接上最简单的格式,不封装
var xhr = new XMLHttpRequest();//定义一个XMLHttpRequest对象,这里提一句,ajax与form传输参数都需 要满足http协议,ajax请求的就是一个XMLhttpRequest,传输的是XML的数据,只是XML和json是可以相互转换的。
xhr.open("请求方式",url,true);//url包括地址和参数,具体参数写法必须username="zz"?password="12345",中间用?隔开,而true表示是异步请求,如果是false是同步请求。
xhr.onchangereadystate = function(){
xhr.send();必须有这一句,表示开始请求了,当然还有满足兼容性等问题,需要用到AxtivexObject对象(ie8以下,ie8以上都是XMLHttpRequest请求),
不难看出js的请求是多么麻烦,所以建议还是使用jquery的ajax请求方便的多。这里说一句,所谓的请求方式无非是解决数据传输的安全,大小等问题,例如get请求是直接在url栏里可以看到的,而post不能,而且get请求传输的数据太小,post可以传输大的,get一般用于直接页面跳转等,post用于需要传输参数时,并且相对比较安全的。
json数据的解析?
json是什么?其实就是一种数据传输,java中的map就是一种键值对,js中也经常用到,json的格式就是
var json = {key:value,key1:value1,key2:value2}就是这样的格式,在js的规范要求中,key是不需要用双引号或单引号的。