2017-07-26 36 views
0

我正在試圖製作一個簡單的移動應用程序,使用流星將用戶位置數據發送到地理空間數據庫/服務器。我不確定我想要做什麼實際上可能與流星有關,或者如果我做了不正確的事情。來自流星手機應用程序客戶端的POST請求

沒有Meteor服務器組件,只有客戶端代碼。首先,我需要使用POST請求從服務器獲取令牌。這在測試代碼時運行(流星運行android-device)。我可以看到令牌信息。但是,當我構建Android手機應用程序時,它不起作用。我嘗試了多種方式來獲取令牌(AJAX POST,Meteor Http和XMLHttpRequest),所有這些都在測試時起作用。

我已經通過流星和CORS文檔和許多其他類似問題的帖子,但似乎無法找到解決辦法。這是我第一次在這個領域工作,所以我不確定我是否缺少明顯的東西,或者如果我在Meteor中不允許我做什麼。

所以,

  1. 就是我想要流星手機應用程序不容許(應用程序無法使用流星服務器,這是一個非開始了我工作的地方)?

  2. 這是一個CORS問題我沒有正確處理,即使我可以在測試時POST?

  3. 建立Android/iOS應用程序時,我需要做些什麼嗎?

  4. 問題是別的嗎?

我真的不知道還有什麼要看或如何進一步排除故障。

感謝您的幫助!

下面是POST請求的一些(消毒過的)代碼片段,它們在測試它們是否有幫助時工作。

AJAX:

var getToken_ajax = function() { 
    var tokenData = { 
     username: "theusername", 
     password: "thepassword", 
     f: 'json', 
     expiration: 60, 
     client: 'referer', 
     referer: window.location.origin 
    }; 

    $.ajax({ 
     url: "https://<address>:<port>/arcgis/tokens/generateToken", 
     dataType: 'json', 
     type: 'POST', 
     data: tokenData, 
     crossDomain: true, 
     success: function(data, textStatus, jqXHR) { 
      // do something 
     }, 
     error: function(data, textStatus, jqXHR) { 
      // do something 
     } 
    }); 
}; 

的XMLHttpRequest:

var getToken_XMLHttpRequest = function() { 
    var tokenData = "username=theusername&password=thepassword&f=json&expiration=60&client=referer&referer=" + window.location.origin; 
    var xhr = new XMLHttpRequest(); 
    var url = 'https://<address>:<port>/arcgis/tokens/generateToken/'; 
    var xhrHistoryText; 
    var body = tokenData; 
    function doPost() { 
     if (xhr) { 
      xhr.open('POST', url, true); 
      xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8"); 
      xhr.setRequestHeader("Accept", "Accept:application/json, text/javascript, */*; q=0.01"); 
      xhr.onreadystatechange = stateChangeHandler; 
      xhr.send(body); 
     } 
     else { 
      // do something 
     } 
    } 
    function stateChangeHandler(evtXHR) { 
     // do something 
    } 
    doPost(); 
}; 
+0

瀏覽器引擎是否在任何地方記錄了任何指示失敗的錯誤?正常Web應用程序的CORS相關錯誤將記錄到瀏覽器devtools控制檯 – sideshowbarker

回答

0

原來有不到位的一個適當的證書。一旦到位,生產中的張貼按預期工作。

相關問題