Я использую jQuery ajax-вызов, который принимает ответ json:
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){} });
в моей функции php backend, я использую json_encode на простом массиве, как показано:
$json_encoded_string = json_encode(array("hello"=>'abc')); echo $json_encoded_string; die;
но alert (msg.hello) возвращает undefined для меня. Что здесь происходит? Кроме того, в моем console.log я могу получить вывод как:
{"hello":"abc"}
Используйте parseJSON
для возвращаемых данных:
if (msg) { msg = $.parseJSON(msg); alert(msg.hello); }
вам необходимо отправить данные в виде Content-Type «application / json», иначе это не сработает.
Просто добавьте в свой PHP-файл следующее:
header('Content-type: application/json');