Начнем с того, что я новичок в angular, и пошагово следую учебному видео .Я застрял в этом вопросе почти 2 недели и провел много часов в поисках решений на других подобных форумах.Я понимаю, что это распространенная ошибка, но, попробовав пару десятков или около того решений, но не добившись успеха, я полагаю, что я также могу опубликовать свой опыт, и, возможно, он может пролить свет на эту проблему, которую многие из нас, похоже, имеют.
Проблема
Ошибка возникает при просмотре части видеофильма "Angular Tutorial # 13", которая начинается около 1:42:00.Я выполняю все шаги в точности так, как показано в видео, но в терминале, в котором я запускаю «npm start», я вижу следующее сообщение об ошибке:
[HPM] Error occurred while trying to proxy request /api/file.php from localhost:4200 to http://localhost:1234 (ECONNREFUSED)
Мои сценарии package.json для «start»: «ngserve --proxy-config proxyconfig.json ", а мой proxyconfig.json содержит:
{
"/api":{
"target": "http://localhost:1234",
"secure": false,
"changeOrigin": true
}
}
В CMD я перехожу к папке" intro2angular ", которая является корнем" / test / api /file.php ", и я запускаю
php -S localhost:1234
до запуска npm start
в powershell в VisualStudioCode.Тогда я бегу npm start
.Код успешно компилируется.В Chrome, если я иду на http://localhost:1234/test/api/file.php
, то файл отображается в браузере. Однако , если я перейду к http://localhost:4200
и нажму на якорь, который выполняет код для запроса file.php , тогда в терминале отобразится ошибка [HPM] Error occurred while trying to proxy request /api/file.php from localhost:4200 to http://localhost:1234 (ECONNREFUSED)
.На вкладке Сеть Инструментов разработчика в Chrome, когда я проверяю Заголовки для file.php , я вижу следующее:
Request URL: http://localhost:4200/api/file.php
Request Method: GET
Status Code: 504 Gateway Timeout
Remote Address: 127.0.0.1:4200
Referrer Policy: no-referrer-when-downgrade
Простите, что я многословенобъясняя каждый шаг, который я выполнил, но так как я видел несколько похожих сообщений на форуме, касающихся ошибки ECONNREFUSED, возникающей при попытке использовать прокси, я подумал, что включение каждой мелкой детализации может быть необходимо для определения источника ошибки в этом случае,Если понадобятся какие-либо подробности / код, я буду рад их добавить.
Решения, которые я до сих пор пробовал
Обратите внимание, что это не полный список, я пробовал несколько других решений, но они, кажется, являются наиболее распространенными, которые работали для других.Кроме того, я не говорю, что я бы не стал давать этим решениям еще одну попытку, так как я открыт для любых предложений.
- указание случайных локальных портов для приложения angular и file.php
- с использованием
setTimeout
для добавления задержки к вызову функции .getData()
- отключениебрандмауэр
- , включая опцию
"pathRewrite": {"^/api" : ""}
до proxyconfig.json
Я ценю любую помощь, предложения и обсуждения по этому вопросу, которые у меня былиСам по себе успех не удался, и я не могу продолжать учебник по угловым вопросам, пока эта проблема не будет решена.Заранее спасибо.