3

I am using a jquery ajax call which accepts json response :

 var posturl = '/admin/getparamdetails/';
    var data = "adnetworkId="+adnetworkId;
    $.ajax({
        type: "POST",
        url: posturl,
        data : data,
        datatype: "json",
        success: function(msg){
            //$("#displayPramForm").html(msg);
            //alert('hello'+msg.length+' '+msg.hello.length);
            console.log(msg);
            if(msg!='')
            {
                alert(msg.hello);
            }
        },
        failure: function(msg){}
    });

in my php backend function , I am using json_encode on a simple array as shown:

 $json_encoded_string =  json_encode(array("hello"=>'abc'));
 echo $json_encoded_string;
 die;               

but alert(msg.hello) returns undefined for me. What is going wrong here ? Also , in my console.log I am able to get the output as :

{"hello":"abc"}     
deGee
  • 781
  • 1
  • 16
  • 34

2 Answers2

2

Use parseJSON on the return data:

if (msg) {
  msg = $.parseJSON(msg);
  alert(msg.hello);
}
leepowers
  • 37,828
  • 23
  • 98
  • 129
1

you have to send the data as Content-Type "application/json", otherwise it won't work.

Just add the following in your PHP File:

header('Content-type: application/json');
Tobias Bambullis
  • 736
  • 5
  • 17
  • 45