2014-10-07 2 views
0

Я сделал заявку, используя apache cordova. мой сервер написан в node.js, работающем локально, и порту 3005. Поэтому я хочу позвонить API из cordova. Я использую backbone на стороне клиента.Звонки API не работают в приложении кордоны

Я написал следующий код, чтобы сделать API позвонить

makingAPICallForStatus:function(){ 
    var userSessionModel = Backbone.Model.extend({ //Creaating a model for checking user session status 
     url:"http://localhost:3005/api/user/status/", 
    }); 
    var userSessionModelObj=new userSessionModel(); 
    this.makeApiCall(userSessionModelObj,"",'GET',function(model,response,options){console.log(response);}); 
}, 
makeApiCall:function(modelObj,dataObject,requestType,successCallback){ 
    modelObj.fetch({data:dataObject, 
      type:requestType,  
      success:successCallback,   
      error:function(){console.log("error")} 
    }); 
} 

Если вы заметили, я уже URL путь: "http://localhost:3005/api/user/status/". Таким образом, он не работает. он показывает This request has no response data available

Теперь я попытался с областью производства как

URL путь: "http://xxx.xxxx.com/api/user/status/"

Таким образом, это работает отлично.

Почему localhost не работал, я вызываю тот же url, что и в моем браузере, работая нормально. но он не работает в cordova.

Примечание: я ничего не модифицировал в файле www/config.xml.

В чем проблема, как исправить это.

Спасибо.

+0

Вы используете сервер на порту 3005, но используете запрос в порту 3004? –

+0

@YoelNunez извините, я обновил сейчас, вы можете проверить это. – vasan

+0

проверить это сообщение Я думаю, что это похоже на то, что вы испытываете [ссылка] (http://stackoverflow.com/questions/12610020/backbone-js- non-rest-user-model) –

ответ

0

localhost - это псевдоним 127.0.0.1, даже если вы работаете на эмуляторе на той же машине, локальный хост не является реальным. Вы должны всегда звонить на ipaddress или доменное имя с устройства (даже на виртуальные устройства). Это связано с тем, что на устройстве localhost ссылается на устройство, а не на аппарат, из которого он может работать.