Я работаю над проектом Java с Spring-4 и Angular-5. Сессия создается на пружинной стороне.
Итак, я не могу сгенерировать этот сеанс из службы angular. Он работает над Postman, и я могу получить ответ в PostMan. Но он не работает с вызовом метода Angular post.
Итак, я подумал, что это может быть проблема прокси. (Коррент меня, если я ошибаюсь).
Итак, мой локальный URL: - http: // localhost: 8080 / MacromWeb / ws / логин
Итак, как я могу создать файл proxy.conf.json?
Для этого я добавил этот код в свой файл package.json,
"start": "ng serve --proxy-config proxy.conf.json",
Я создал новый файл под названием proxy.conf.json.
И поместите в него этот код.
{
"/": {
"target": "http://localhost:8080/MacromWeb/ws",
"secure": false
}
}
Затем я попробовал с ng serve и npm start.
Вы можете добиться этого через прокси. Вам необходимо указать правильные значения в конфигурации прокси.
/* тоже должен работать, но если MacromWeb распространен в URL-адресах API, то вместо / предоставьте /MacromWeb/*
proxy.conf.json выглядит примерно так,
{
"/MacromWeb/*": {
"target": {
"host": "localhost",
"protocol": "http:",
"port": 8080
},
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
}
Надеюсь, поможет.
Ок. Спасибо за быстрый ответ. Это код для proxy.conf.json?
Да, это proxy.conf.json, хотя я бы посоветовал вам использовать файл javascript proxy.conf.js, если вызовы API приложения выполняются на разные конечные точки API (или разные серверы)
Я пробовал твой код, брат. Это не работает. Мне нужно что-нибудь поменять на package.json? У меня есть вопрос, что я использую эту службу с этого URL-адреса http://localhost:4200/#/pages/login, и я звоню по этому URL-адресу http://localhost:8080/MacromWeb/ws/login. Так это работает?
@Bhavin, Вы не должны явно использовать весь URL-адрес вроде этого -> http://localhost:8080/MacromWeb/ws/login при вызове API, вы должны использовать что-то вроде этого -> this.http.get("MacromWeb/ws/login")
Базовый путь также имеет значение, какой базовый путь вы используете в index.html?
Базовый путь: - <base href = "./">
Ага. Я использую URL-адрес, подобный этому this.http.get("MacromWeb/ws/login"), при вызове URL-адреса веб-службы.
Позвольте нам продолжить обсуждение в чате.
Допустим, у нас есть сервер, работающий на http: // локальный: 3000, и мы хотим, чтобы все вызовы http: // локальный: 4200 / api направлялись на этот сервер.
В наш файл proxy.conf.json мы добавляем следующий контент
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"pathRewrite": {
"^/api": ""
}
}
}
Подробнее об этом: здесь
И когда вы делаете http-вызов, какую конечную точку вы используете?