我修改完mui官方的代码为:
mui.ajax('http://192.168.0.123:8080/ssm/login',{
data:{
loginName:accountBox.value,
loginPassword:passwordBox.value
},
dataType:'JSON',//服务器返回json格式数据
type:'POST',//HTTP请求类型
timeout:10000,//超时时间设置为10秒;
headers:{'Content-Type':'Content-Type':'application/json'},
success:function(data){
//服务器返回响应,根据响应结果,分析是否登录成功;
alert(JSON.stringify(data)+'asdasd');
console.log(JSON.stringify(data));
},
error:function(xhr,type,errorThrown){
//异常处理;
alert("异常处理");
console.log(type);
});
但是当你请求java后台数据时,后台运用request.getParameter("loginName");获取不到数据;此处时ajax跨域请求的问题,
把以下代码:
headers:{'Content-Type':'Content-Type':'application/json'},
修改为:
headers:{'Content-Type':'application/x-www-form-urlencoded'},
当然后台也同样修改:
@RequestMapping(value="/login",produces="application/json;charset=utf-8",consumes="application/x-www-form-urlencoded")
即可解决跨域问题,后台也能获取到数据。
但是如果你后台返回的数据不是json数据时,该mui.ajax方法同样会走error
要么把以下代码删除,要么把后台数据转换为json数据再返回,否则还是会报错。
dataType:'json',//服务器返回json格式数据