В приложении Angular JS Я работаю над этим, я периодически пользуюсь службой (в $timeout
), чтобы сделать запрос GET URL-адресу в моем API (как приложение «Угловое», так и API обслуживается с порта 5000 на localhost).
По какой-то причине кажется, что $ http фактически не отправляет GET. Для каждого $http.get()
.error()
вызывается с пустыми данными и имеет значение 0. Когда я проверяю свой серверный журнал (я запускаю бэкэнд Ruby on Rails с жемчужиной Unicorn для моего сервера), кажется, что сервер никогда не получает запрос от углового.
Вот функция в моей службы:
updateUserStatus =() ->
$http.get('/api/v1/status').success (statusData) ->
# update the variable and notify the observers
this.userStatus = statusData
notifyObservers()
startStatusTimeout()
.error (error, status) ->
# if there's an error, log it
console.log 'error:'
console.log error
console.log status
startStatusTimeout()
Что действительно странно, что это происходит только иногда. Когда он перестает работать, я могу изменить URL-адрес в $http.get()
до '/api/v1/status.json'
, и он работает. Какое-то время. Затем я переключу его назад, и он снова работает, на некоторое время ... очевидно, что в игре есть еще одна проблема.
Я уже несколько дней ломаю свой мозг, и я видел кучу подобных проблем на SO, но все они, похоже, решаются с внедрением CORS в Angular, что я не думаю, что это применимы к моей ситуации, потому что все это происходит от localhost:5000
. Я ошибаюсь? Что происходит?
Для справки, я использую угловую версию 1.0.7.
Вы проверили, действительно ли браузер отправляет что-то? Это может дать ключ. Например, в Google Chrome есть сетевая вкладка в средствах разработчика. Держите его открытым и создайте '$ http.get'. Посмотрите, если запрос погаснет, и проверьте его, если да. –
Спасибо, я должен попробовать это. Я просто сделал быстрое исправление, которое я описал (изменяя URL-адрес), поэтому я проверю его, когда он перестанет работать снова. –
Просто проверил вкладку в сети - браузер никогда не отправляет запрос GET. Для справки, я использую новейшую версию Chrome. Когда я загружаю страницу в Firefox, она успешно отправляет GET, но она может перестать работать и через некоторое время. Есть идеи? Обычно это происходит сразу после сохранения изменений в файлах Javascript/Coffeescript и обновления страницы. –