将Aurelia与后端API连接

时间:2017-02-03 12:07:08

标签: rest http express aurelia

背景:我正在为我的公司开始一个新项目。自从我完成一些Web开发并决定使用最新平台构建它以来已经很多年了(所以我对所有这些都是新手)。

当前筹码:

  • Aurelia前端(在localhost:9000上运行)
  • 使用ExpressJS的后端REST API(在localhost:8000上运行)
  • 在AWS上运行的PostGreSQL数据库,为后端提供数据

问题:我似乎无法将我的前端与我的后端正确连接。

这是我的代码:

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);
            });
   };

}

这总是在catch块中结束,带有“response:ProgressEvent”

如果我将网址放入浏览器中,我会得到一个合适的JSON:

{"status":"success","data":[],"message":"Retrieved ALL users"}

上述代码仅适用于“本地”内容,即localhost:9000。一旦我需要来自其他地方的内容,我就会收到此错误。我错过了什么?

1 个答案:

答案 0 :(得分:2)

我认为CORS不允许您从localhost:8000访问localhost:9000。要解决此问题,您应该使ExpressJS服务器接受来自localhost:9000(或使用通配符" *"的所有主机)的CORS请求。

了解这些资源: