ECONNREFUSED для запроса прокси с локального хоста на другой локальный хост - PullRequest
0 голосов
/ 12 декабря 2018

Начнем с того, что я новичок в 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, возникающей при попытке использовать прокси, я подумал, что включение каждой мелкой детализации может быть необходимо для определения источника ошибки в этом случае,Если понадобятся какие-либо подробности / код, я буду рад их добавить.

Решения, которые я до сих пор пробовал

Обратите внимание, что это не полный список, я пробовал несколько других решений, но они, кажется, являются наиболее распространенными, которые работали для других.Кроме того, я не говорю, что я бы не стал давать этим решениям еще одну попытку, так как я открыт для любых предложений.

  1. указание случайных локальных портов для приложения angular и file.php
  2. с использованием setTimeout для добавления задержки к вызову функции .getData()
  3. отключениебрандмауэр
  4. , включая опцию "pathRewrite": {"^/api" : ""} до proxyconfig.json

Я ценю любую помощь, предложения и обсуждения по этому вопросу, которые у меня былиСам по себе успех не удался, и я не могу продолжать учебник по угловым вопросам, пока эта проблема не будет решена.Заранее спасибо.

1 Ответ

0 голосов
/ 24 июня 2019

У меня была такая же проблема, и я искал решение целую вечность ...

В моем случае это помогло предоставить IP-адрес localhost, а не "localhost".

Так что изменитеваш прокси-конфиг к этому:

{
    "/api":{
        "target": "http://127.0.0.1:1234",
        "secure": false,
        "changeOrigin": true
    }
}

А также попробуйте использовать "ng serve --proxy-config proxyconfig.json" вместо начальной версии npm.Я читал, что иногда config-часть package.json игнорируется некоторыми людьми.

Надеюсь, это поможет!

...