Varun
Varun

Reputation: 4452

How to send boolean result to ajax call

I want to send Boolean result in ajax call.

Ajax call

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");
	}
    });
	
}

Controller method from where I want to send Boolean result.

@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;
}

i want to send the Boolean flag result to ajax call. How do i send it. dont mind about the logic .. I just want to know how can i send boolean result to ajax call. Please help .

Upvotes: 2

Views: 9555

Answers (2)

Vish
Vish

Reputation: 148

Without passing the Boolean value to the Ajax call, you can do some thing like this using a map. Using this map you can send anything rather than only limiting to Boolean values.

@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;

     }

Then you can access this 'flagdata' object in the Ajax call.

Your Ajax code will be some thing like this.

$.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");
            }
            });

Hope it helps.!

Upvotes: 0

Andy W
Andy W

Reputation: 604

Ajax uses HTTP which is a text protocol and has no concept of booleans. However, you can return the strings "1" or "0" to represent your boolean values.

Then, in your "success" callback:

success : function ( data ) {
    if ( data * 1 ) {
        // true result
    } else {
        // false result
    }
}

Upvotes: 6

Related Questions