异步请求
Ajax_Day2_Post
Post提交方式的Ajax
<script type="text/javascript">
$(function (){
//当我们的鼠标焦点离开文本框时触发一个ajax的异步请求
$("#input").blur(function(){
//创建xhr 对象 javascript对象 存在着浏览器差异 浏览器的内核版本 ie webkit
var xhr;
if(window.XMLHttpRequest){//true webkit
var xhr= new XMLHttpRequest();
}else{
var xhr=new ActiveObject("Micorsoft.XMLHTTP");
} /
/为当前的ajax设置提交方式,以及携带请求参数
xhr.open("POST","http://localhost:8989/Ajax_Day1/first");
//post的提交方式在哪儿
//模拟当前的提交方式为form表单
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//提交ajax的请求 send方法中以键值对的方式提交携带的参数
xhr.send("name=ergou");
//处理相应的字符串内容
xhr.onreadystatechange=function(){
if(xhr.status==200&&xhr.readyState==4){
console.log(xhr.responseText);
}
}
})
})
</script>
Action对于响应乱码的解决
public String execute() throws Exception {
//通过struts2提供的工具类获取response响应对象
HttpServletResponse response = ServletActionContext.getResponse();
//通过response响应对象设置一个编码格式
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
writer.print("这是我当前的第一个postajax的请求");
System.out.println(name+"11111111111111111");
System.out.println("这是我当前的第一个postajax的请求");
return null;
}
原生的Ajax与Json的交互
HTTP请求协议:只能接收以字符串为单位的数据
模拟需求:通过一个Ajax的异步请求 要求你给我返回一个对象,这个对象中的所有的数据展示到当前页面中
fastjson.jar ---->阿里巴巴---->号称全世界解析json对象最快的工具
jackjson--->国外
Goson--->Google
后台java将java对象转换成为json串的方式
//将当前的java对象转换成json对象
//String jsonString = JSONObject.toJSONString(user);
//使用JSON中的方法转换json对象的同时修改对象中的日期属性值
String newuser = JSONObject.toJSONStringWithDateFormat(user, "yyyy-MM-dd");
前台将Json串转换成为json对象的两种方式
//如何将后台转换成为json串的字符串转换成为前台所熟悉的json对象
//var a=JSON.parse(xhr.responseText);
var a=eval("("+xhr.responseText+")");
console.log(a.id)
console.log(a.name)
有不对的地方还请大佬指点