Контекст: Я начинаю новый проект для своей компании. Прошло много лет с тех пор, как я сделал некоторые веб-разработки и решил построить его с использованием новейших платформ (так что я все еще новичок во всем этом).Подключение Aurelia с интерфейсом API
Текущий стек:
- Aurelia интерфейс (работает на локальном хосте: 9000)
- Backend REST API с помощью ExpressJS (работает на локальном хосте: 8000)
- базы данных PostgreSQL, работающие на AWS, предоставляя данные для бэкенд
Вопрос: Кажется, я не могу подключить свой интерфейс с моим бэкэндом должным образом.
Вот мой код:
import {inject} from "aurelia-framework";
import {HttpClient} from "aurelia-http-client";
@inject(HttpClient)
export class Login {
constructor(httpClient){
this.http = httpClient;
}
signIn() {
const url = 'http://localhost:8000/api/user/demo/test';
this.http
.get(url)
.then(data => {
console.log("data");
console.log(data);
})
.catch(error => {
console.log('Error getting ' + url);
console.log(error);
});
};
}
Это всегда в конечном итоге в блоке поймать с «ответ: ProgressEvent»
Если я ставлю URL в браузере я получаю правильный JSON:
{"status":"success","data":[],"message":"Retrieved ALL users"}
Этот код работает только для локального контента, то есть localhost: 9000. Как только мне нужен контент из другого места, я получаю эту ошибку. Что мне не хватает?
Решенный! Я посмотрел на первую ссылку и добавил ее в свой экспресс-сервер: app.use (функция (req, res, next) { \t res.header («Access-Control-Allow-Origin», «http: // localhost: 9000 "); \t res.header (" Access-Control-Allow-Headers "," Origin, X-Requested-With, Content-Type, Accept "); \t next(); }); –
Awesome. Рад, что моя дикая догадка была права. :) – Travo