我想在ajax调用中发送布尔结果。
Ajax通话
function myMethod() {
$.ajax({
type : "GET",
url : myurl
dataType : "json",
contentType: "application/json",
crossDomain: true,
success : function(data) {
alert("success :"+data);
},
error : function(data) {
alert("Fialed to get the data");
}
});
}
我想发送布尔结果的控制器方法。
@RequestMapping(value = "/myMethod", method = RequestMethod.GET)
@ResponseBody
public boolean myMethod(empId) {
flag = false;
try {
if (empId != null)
newName = Employee.getName(empId);
else
newName = Employee.getName();
} catch (Exception e1) {
flag = true;
System.out.println("flag :" + flag);
e1.printStackTrace();
}
return flag;
}
我想将布尔标志结果发送到ajax调用。 我该如何发送。不介意逻辑..我只是想知道如何将布尔结果发送到ajax调用。请帮忙。
答案 0 :(得分:2)
Ajax使用HTTP,它是一种文本协议,没有布尔值的概念。但是,您可以返回字符串“1”或“0”来表示布尔值。
然后,在你的“成功”回调中:
success : function ( data ) {
if ( data * 1 ) {
// true result
} else {
// false result
}
}
答案 1 :(得分:0)
如果不将布尔值传递给Ajax调用,您可以使用地图执行此类操作。使用此地图,您可以发送任何内容,而不仅仅是限制为布尔值。
@RequestMapping(value = "/myMethod", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> myMethod(empId)
{
flag=false;
try {
if(empId != null)
newName = Employee.getName(empId);
else
newName = Employee.getName();
} catch (Exception e1) {
flag=true;
System.out.println("flag :"+flag);
e1.printStackTrace();
}
final Map<String, Object> map = new TreeMap<String, Object>();
map.put("flagdata", flag);
return map;
}
然后你就可以访问这个&#39; flagdata&#39; Ajax调用中的对象。
您的Ajax代码将是这样的。
$.ajax({
type : "GET",
url : myurl
dataType : "json",
contentType: "application/json",
crossDomain:true,
success : function(data) {
alert("success :"+data.flagdata);
},
error : function(data) {
alert("Fialed to get the data");
}
});
希望它有所帮助。!