Настройка функции облачного прокси-сервера Angular CLI HTTP
Можно ли с помощью Angular CLI и https://github.com/chimurai/http-proxy-middleware перехватывать / прокси-вызовы на внешний URL-адрес, такой как безоблачная функция облака, такая как функции Azure или функции Firebase?
Например, нацеливание на внешний URL-адрес облачной функции, такой как https://foobar.azurewebsites.net/api/SampleHttpFunction?code=123ABC456XYZ==
как бы вы настроили proxy.conf.json
перехватить этот URL/ путь?
Следующие конфигурации успешно перехватили HTTP-запрос (target
настроен на локально работающую облачную функцию localhost port для целей разработки). Угловое приложение запускается с помощью команды "ng serve --proxy-config proxy.conf.json --open"
,
{
"/api": {
"target": "http://localhost:1234",
"secure": false
}
}
{
"foobar.azurewebsites.net/api": {
"target": "http://localhost:1234",
"secure": false
}
}
{
"**/api": {
"target": "http://localhost:1234",
"secure": false
}
}
HttpClient
звонки в https://foobar.azurewebsites.net/api/SampleHttpFunction?code=123ABC456XYZ==
с любой из этих конфигураций по-прежнему переходит на URL-адрес производственной облачной функции, а не http://localhost:1234/api
,
Обновление: в соответствии с предложением я попытался использовать конфигурацию с несколькими записями и запустить приложение с ng serve --proxy-config proxy.conf.js --open
, но все равно не ловит HTTP-вызов:
const PROXY_CONFIG = [{
context: [
"/api",
"**/api",
"**/api/*",
"https://foobar.azurewebsites.net/api/",
"foobar.azurewebsites.net/api/",
"foobar.azurewebsites.net/api/*",
"*foobar.azurewebsites.net/api"
],
target: "http://localhost:1234",
secure: false
}]
module.exports = PROXY_CONFIG;
Спасибо за любую помощь, которую вы можете предоставить!
1 ответ
У меня была такая проблема с моим приложением, когда перехват только перехватывает первую конфигурацию прокси. Я должен был использовать JS
вместо этого отформатированный прокси.
const PROXY_CONFIG = [{
context: [
"/api",
"foobar.azurewebsites.net/api",
"**/api"
],
target: "http://localhost:1234",
secure: false
}];
module.exports = PROXY_CONFIG;
proxy.conf.js
и заменить proxy.conf.json
от package.json
с js
файл и попробуйте.