2013-11-20 4 views
0

Я пытаюсь переписать информацию с помощью $ .ajax и показать все на дисплее. Речь идет о PUT и GET информации от MongoDB. Сначала я делаю PUT colunms таблицы с $ .ajax в MongoDB. $ .ajax с PUT хорошо работает, потому что я вижу, что все редактируется в MongoDB. После этого действия я хочу получить информацию из базы данных. И здесь я потерпел неудачу. Я не понимаю, почему после PUT я получаю не фактическую информацию из базы данных.

$.ajax({ 
    url: VASERVER_API_LOC + '/visualization/' + visid + '/', 
    contentType: 'application/json', 
    data: JSON.stringify(features), 
    type: 'PUT', 
    success: function (data) { 

    } 
}); 

$.ajax({ 
    url: VASERVER_API_LOC + '/visualization/' + visid + '/', 
    type: 'GET', 
    contentType: "application/json", 
    data: tmp_object, 
    success: function (tmp_object) { 
     var features = tmp_object.features;... 
    } 
}) 

ответ

0

Ajax работает асинхронно (это часть его имени). Это означает, что два вызова $.ajax могут не выполняться в любом порядке - или когда-либо завершаться.

Если у вас есть код, основанный на результате асинхронного вызова, все работы, связанные с вызовом, должны выполняться в обратном вызове для ajax. Обратный вызов запускается после завершения ajax. Вы можете использовать success или использовать deferreds (встроенный):

$.ajax(putRequest).done(function() { 
    $.ajax(getRequest); 
}); 
+0

спасибо! это хорошее решение! – toshkaexe

0

AJAX является асинхронный, так что второй AJAX вызов выполняется перед вашим PUT завершена, обертку в функции, и называют, что с success первый:

$.ajax({ 
    url: VASERVER_API_LOC + '/visualization/' + visid + '/', 
    contentType: 'application/json', 
    data: JSON.stringify(features), 
    type: 'PUT', 
    success: function (data) { 
     getData(); 
    } 
}); 

function getData() { 
    $.ajax({ 
     url: VASERVER_API_LOC + '/visualization/' + visid + '/', 
     type: 'GET', 
     contentType: "application/json", 
     data: tmp_object, 
     success: function (tmp_object) { 
      var features = tmp_object.features;... 
     } 
    }) 
} 
+0

спасибо !! это отличное решение! – toshkaexe