2013-09-24 3 views
0

Мне нужно отобразить комментарии на моей странице, извлекая из базы данных.Получить данные с сервера и отображения

Я могу получить фиктивные тестовые данные из .json-файла, но когда я пытаюсь подключить его к URL-адресу базы данных, он не получает данные.

Я использую шаблон руля js, чтобы закодировать данные на странице html.

Вот мои JS для fecth данные

var getData = function() { 
     console.group("getData()", "Fetching data from server at", R.settings.endPoints.incoming.getData); 

     var promise = $.ajax({ 
     url: R.settings.endPoints.incoming.getData 
     }); 

     console.log("getData()", "Returing the promise", { promise: promise }); 

     console.groupEnd(); 

     return promise; 
    }; 

DB URL устанавливается .getdata, как показано ниже $.ajax функция

endPoints: { 
      incoming: { 
      getData: "http://localhost:8080/rest/review/getReview" 
      }, 
      outgoing: { 
      sendData: "http://localhost:8080/rest/review/createReview" 
      } 
     } 

ответ

0

JQuery является асинхронным по умолчанию, так что вам нужно поставить обработку/отображаемый код в методе deferred.done:

var promise; 

$.ajax({ 
    url: R.settings.endPoints.incoming.getData 
}) 
    .done(function(msg) { 
    console.log(msg); 
    promise = msg; 
    }); 

Однако, если вы хотите, чтобы выполнить синхронный запрос, сделать что-то вроде этого:

var promise = $.ajax({ 
     url: R.settings.endPoints.incoming.getData, 
     async: false 
     }); 

Обратите внимание, что в соответствии с официальной документации:

As of jQuery 1.8, the use of async: false with jqXHR ($.Deferred) is deprecated; 
you must use the success/error/complete callback options instead of the 
corresponding methods of the jqXHR object such as jqXHR.done() or the 
deprecated jqXHR.success(). 
Смежные вопросы