2017-02-03 11 views
1

Контекст: Я начинаю новый проект для своей компании. Прошло много лет с тех пор, как я сделал некоторые веб-разработки и решил построить его с использованием новейших платформ (так что я все еще новичок во всем этом).Подключение 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. Как только мне нужен контент из другого места, я получаю эту ошибку. Что мне не хватает?

ответ

2

Я думаю, что CORS не позволяет получить доступ к localhost:8000 от localhost:9000. Чтобы решить эту проблему, вы должны включить ваш ExpressJS-сервер для приема запросов CORS от localhost:9000 (или всех хостов с помощью подстановочного знака «*»).

Посмотрите на эти ресурсы:

+0

Решенный! Я посмотрел на первую ссылку и добавил ее в свой экспресс-сервер: 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(); }); –

+0

Awesome. Рад, что моя дикая догадка была права. :) – Travo

 Смежные вопросы

  • Нет связанных вопросов^_^