经常有人ajax函数外,定义一个全局变量,并且在返回函数取出一个值用作判断条件,但是这一条件常常失效。
var OnOff=0; var checkPhone = function() { var phoneVal ={ "tel":$(".checkPhone").val() }; $.ajax({ type : "post", url : 'base/doExistTel.do', data:phoneVal, dataType : "json", async:false, success : function(data) { var result = eval(data); if(result.Success=='true'){ OnOff=1; } } });
//如果ajax的async属性设为true,就是异步,在result.Success没有返回数据的情况下,执行
//以下的代码。如果async属性设为false的,则是同步,必在result.Success返回值的情况下再执行
//以下的代码。 if(OnOff==1){
}
contentType 是客户端到服务器端
dataType是 服务器端返回
在前端返回的数据是这种类型:{"xz1":["A","B"]}
后端spring mvc @ResponseBody是无法接收,可能是value没有双引号,具体还没有试过。
不过可以在ajax设置一个参数(params),提交于后台:
$.ajax({ type : "post", url : 'base/doSubmitProblem.do', data:{"params":person}, dataType : 'json', success : function(data) {。。。。。
后端代码
@RequestMapping("/doSubmitProblem")
@ResponseBody
public Map<String,Object> subProbem(@RequestParam("params") String ps){
}