1. Малко информация
Имам клиентско приложение AngularJS 1.3.15, което прави заявки към моя loopback api.
В приложението прихващам резултати от заявки (с $httpProvider.interceptors) и интерпретирам кодовете на състоянието, за да покажа смислени съобщения, когато потребителят направи нещо - например прихващам 401 отговора, казвайки на потребителя, че няма разрешение, 200 за това, когато той запазва нещо успешно и т.н.
2. Проблемът
Например, ако потребителят се опита да качи изображение, което е твърде голямо, полезният товар на заявката ще надхвърли лимита ми за отдалечено управление и аз мога да прихвана requestError, но кодът на състоянието винаги показва 0. Гледайки конзолата на браузъра, виждам това:
PUT http://localhost:3000/api/Modules?id=9 413 (Request Entity Too Large)
XMLHttpRequest cannot load http://localhost:3000/api/Modules?id=9. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. The response had HTTP status code 413.
Проблемът е, че ако сървърът е офлайн, получавам също код за състояние 0 при прихващане на requestError, така че няма начин да различа грешка при свързване със сървъра от грешка при изпращане на твърде много данни.
Има ли някакъв шанс да има проблем с междинния софтуер на експресния рутер? Не мога да намеря някой със същия проблем...