0

Я пытаюсь понять, как работает MFP JSONStore & HTTP-адаптеры. Я загрузил исходный код here. Я выполнил шаги по созданию приложения. Я также развернул этот адаптер here. Но когда я попытался подтолкнуть грязные данные к адаптеру, я заметил там. Адаптер все еще регистрируется неопределенно.Жесткий адаптер JavaScript HTTP-адаптер не может получать данные запроса

Вот нажимной код функции:

function pushToAdapter(){ 
    alert("pushToAdapter"); 
    try { 
     WL.JSONStore.get(collectionName).push().then(function (res) { 
      if(Array.isArray(res) && res.length < 1){ // I changed this to res.length > 1 
       document.getElementById("resultsDiv").innerHTML = "Documents Pushed Successfuly"; 
      } else { 
       document.getElementById("resultsDiv").innerHTML = "Failed To Push Documents to Adapter: "+ res[0].errorObject; 
      } 
     }).fail(function (errorObject) { 
      alert(errorObject.msg); 
     }); 
    } catch (e) { 
     alert("Failed To Push Documents to Adapter"); 
    } 
} 

& это код адаптера:

function pushPeople(data) { 
    MFP.Logger.debug('Adapter: JSONStoreAdapter, procedure: pushPeople called.'); 
    MFP.Logger.debug('Got data from JSONStore to ADD: ' + JSON.stringify(data)); //always undefined 
    return; 
} 

function addPerson(data) { 
    MFP.Logger.debug('Adapter: JSONStoreAdapter, procedure: addPerson called.'); 
    MFP.Logger.debug('Got data from JSONStore to ADD: ' + JSON.stringify(data)); //always undefined 
    return; 
} 

function removePerson(data) { 
    MFP.Logger.debug('Adapter: JSONStoreAdapter, procedure: removePerson called.'); 
    MFP.Logger.debug('Got data from JSONStore to REMOVE: ' + JSON.stringify(data)); //always undefined 
    return; 
} 

Пожалуйста, обратите внимание, что я использую исправленную версию Cordova-плагин-MFP-jsonstore. Это так же, как this version для линий 5238, за исключением (как следует):

resourceRequest = new WLResourceRequest('adapters/' + invocationData.adapter + '/' + invocationData.procedure, WLResourceRequest.POST); 
resourceRequest.setHeader('Content-Type','application/x-www-form-urlencoded'); //patched version 
resourceRequest.send().then(ipOpts.onSuccess, ipOpts.onFailure); 
+0

Я пробовал точно такие же шаги, и приложение работает так, как ожидалось. Вот ссылка [link] (https://ibm.box.com/s/b91pi00wdj4q4752wg4fs0pk8xyvv9o9) в мой проект Android с использованием исправления (установки заголовка). ** Примечание. Импортируйте проект, как в студию Android, измените конечную точку сервера и запустите проект. Не выполняйте никаких действий с кордорой в проекте, которые могут быть заменены исправлением. ** Если вы все еще сталкиваетесь с проблемой, вы можете поделиться своим проектом, я могу взглянуть на него. –

+0

То же самое. в адаптер не поступает никаких данных. вот что я получаю в адаптере: 'MFP.Logger I Adapter: JSONStoreAdapter, процедура: addPerson. MFP.Logger я получил данные от JSONStore до ADD: undefined' Я задаюсь вопросом, где данные будут посланы к адаптеру? Я имею в виду 'invocationData.parameters' (строка 5224 в' jsonstore.js') никогда не используется нигде !. Также 'resourceRequest.send()' без параметров !. Может ли это быть причиной получения ничего в адаптере? – user1040987

ответ

2

Похоже, параметры не передается как часть запроса нажимной. Вы можете использовать jsonstore.js, предоставленный here, и проверить, разрешает ли он вашу проблему. Это будет официально выпущено в следующем iFix.

+0

Я думаю, что исправление не попало в последнюю версию, не так ли? – user1040987

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

  • Нет связанных вопросов^_^