2017-01-12 1 views
1

Я вызываю простой API аутентификации в своем приложении, используя $http.post.ionic: http post request работает в браузере, но не на мобильном телефоне

this.login = function(scope, credentials) { 
    var url = REST_API.DOMAIN + REST_API.LOGIN; 
    $http.post(url, $.param(credentials)/* convert from json to query string */, { 
     headers: { 
      'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8' 
     } 
    }) 
    .success (function(response){ 
     $log.info(response); 
    }) 
    .error(function(data, status, header, config){ 
      $log.error(data); 
    }); 
} 

Мой код работает плавно, когда я протестировать его в браузере с помощью следующей команды:

ионного служат

Но когда я запускаю его в своем телефоне:

ионный бег -lc андроид

Функция ошибки обратного вызова вызывается непосредственно с данными отклика будучи нулем:

enter image description here

Этот фрагмент кода используется для работы, но в какой-то момент времени он перестал работать. Единственное, что я помню, как это делать может повлиять такое поведение установки новой версии Android:

Cordova платформа удалить андроид
Cordova платформа добавить [email protected]

Еще один момент, что я» я заметил: я отправляю HTTP-запрос в веб-службу на localhost. Но если я размещаю код webservice на удаленном сервере, http-запрос будет успешно работать на моем телефоне.

+0

Вы проверили, что это забросило ошибку? –

+0

@RameshRajendran Да, это не проблема – Meysam

ответ

2

Когда вы загружаете свой код на свой телефон, локальный хост становится вашим телефоном, а не вашим компьютером. Таким образом, на вашем телефоне нет сервера, который слушает, поэтому он дает ошибку. Чтобы исправить это, при попытке вашего телефона изменить localhost на IP-адрес вашего компьютера, который вы можете узнать, набрав ipconfig в Windows и ifconfig в Linux. Записать номер начинается с 192.168.... или 10.... вместо localhost. Таким образом, он также будет работать на вашем компьютере. Это по той же причине, почему оно работает, когда вы отправляете его на удаленный сервер.

+0

Спасибо, что исправлено :) Я не знаю, почему я думаю, что «localhost» раньше работал раньше ... – Meysam

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