Я хочу запустить приложение Angular 7 на сервере разработчика и получить доступ к данным XML из тестовой базы данных (https://demo.aligni.com/api/v2/oid3vLgynoy_Yl1gZkrgkLEq3J/part/000222?find_by=partnumber)
Angular справедливо жаловался на CORS, и ответы SO и документация веб-пакета привели меня к тому жевывод - создайте прокси и перепишите URL, чтобы обойти мою проблему с CORS.
Тем не менее, pathRewrite в Webpack не работает должным образом, чтобы получить желаемый результат.
Я попытался настроить проксиФайл .conf.json выглядит следующим образом.
{
"/api/*": {
"target": "https://demo.aligni.com/api/v2/",
"secure": false,
"logLevel":"debug",
"pathRewrite": {"^api/": ""}
}
}
Соответствующая часть из моего app.component.ts
this.http.get(
'/api/oid3vLgynoy_Yl1gZkrgkLEq3J/part/728',
{
headers: httpHeaders,
responseType: 'text'})
.subscribe((data)=> console.log(data), (err)=>console.log(err));
}
Мои фактические результаты от прокси.Ведение журнала conf.json:
[HPM] GET /api/oid3vLgynoy_Yl1gZkrgkLEq3J/part/728 -> https://demo.aligni.com/api/v2/
На основе документации веб-пакета «приведенная ниже конфигурация перезапишет HTTP-запросы на удаление части / api в начале URL-адреса» [Перезапись URL-адресов запроса прокси: https://github.com/webpack/docs/wiki/webpack-dev-server]... Мои ожидаемые результаты:
GET /api/oid3vLgynoy_Yl1gZkrgkLEq3J/part/728 -> https://demo.aligni.com/api/v2/oid3vLgynoy_Yl1gZkrgkLEq3J/part/728
Чтобы получить ожидаемые результаты, мне нужно будет только удалить part / api в начале URL, указанного в угловом вызове (точныйy, что указано в документации веб-пакета), и добавьте ее к моей цели.
pathRewrite удаляет весь URL-адрес, а не только его «api /», как я и ожидал.
Конечно, Angular дает мне 404, как вы получите, если вы посетите https://demo.aligni.com/api/v2/
Я не смог найти пример для этого варианта использования с pathRewrite, где мне действительно нужна часть URLменя отправили. После пары часов поиска я увидел несколько правил перезаписи пути XML, но не смог найти хороший учебный ресурс.Я предпочел бы решить эту проблему с помощью pathRewrite, если это возможно.Большое спасибо заранее, это все немного ново для меня.