2013-06-01 4 views
0

Я нахожусь в новичке в JavaScript, JQuery и Ajax-кодировании. Я использую метод JQuery $ .ajax для вызова asyn REST. Как-то я не могу получить данные ответа JSON с ответом HTTP.

Я вижу приведенный ниже результат оповещения. результат метода получения данных (объект) Результат метода (data.toSource()) result result ({"key1", "value1"}) alert ($. ParseJSON (data)) Результат метода ничего

Я проверил приведенный ниже код как в браузерах Firefox, так и в Chrome.

<html> 
<head> 
<title></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"</script> 
</head> 
<body> 
    <form id="foo"> 
     <label for="bar">A bar</label> 
     <input id="bar" name="bar" type="text" value="" /> 
     <input type="submit" value="Send" /> 
    </form> 
    <!-- the result of the search will be rendered inside this div --> 
    <div id="result"></div> 
    <script> 
     $("#foo").submit(function(event) { 
      event.preventDefault(); 
      $("#result").html(''); 
      var values = $(this).serialize(); 
      $.ajax({ 
       url: "resources/helloWorld", 
       type: "GET", 
       dataType: 'json', 
       success: function(data){ 
        alert(data); 
        alert(data.toSource()); 
        var r = $.parseJSON(data); 
        alert(r); 
        $("#result").html(data); 
       }, 
       error:function(){ 
        $("#result").html('there is error while submit'); 
       } 
      }); 
     }); 
    </script> 
</body> 

+1

Вы возвращаетесь действительный JSON? – ajtrichards

+0

my json response is {"key1": "value1"} –

+0

Можете ли вы разместить даже файл json. Было бы легко проанализировать. – iraycd

ответ

2

С вашего поста:

alert(data) -> [Object Object] 

Право, alert() использует строковое представление аргумента и data является объектом.

alert(data.toSource()) -> ({"key1","value1"}) 

Право, toSource() является метод Gecko, который работает как JSON.stringify.

alert($.parseJSON(data)) method result is nothing 

Правильно, вы пытаетесь разобрать объект.


Что вы хотите сделать что-то вроде возможно:

success: function(data){ 
    $("#result").html(data.key1); 
} 
+0

Спасибо, что помогли мне. Да, это работает для меня. Я хочу получить весь ответ JSON и проанализировать этот JSON. потому что мой JSON очень сложный. Могу ли я использовать метод $ .parseJSON для анализа моего HTTP-ответа? –

+0

@RaviHingarajiya Ваш json уже разобран. Запустите 'console.log (data)' внутри функции 'success', чтобы проверить его. – moonwave99

Смежные вопросы