aurelia-http-client连接到错误的地址

时间:2017-02-21 18:33:51

标签: xmlhttprequest aurelia aurelia-cli

我遇到了aurelia Http Client的问题。 我的api(http // localhost:3000 / api / posts)运行正常。 get调用的输出(在postman或浏览器中)是:

[
  {
    "_id": "58a5f4f635c3ab643c74d97a",
    "text": "Foo",
    "name": "Fooo",
    "__v": 0
  },
  {
    "_id": "58a5fcc32586d0683455f78d",
    "text": "Bar",
    "name": "Baar",
    "__v": 0
  }
]

这是我在aurelia应用程序中的来电:

getPosts(){
 return client.get('http//localhost:3000/api/posts','callback')
  .then(data => {
    console.log(data);
    return data.response;
  })
}

And this is the output: 正如您在图像中看到的那样,响应中包含“Aurelia”的内容,但我的api从未触及过aurelia,因此我认为URL存在问题。

UPDATE1:

GManProgram建议修复(缺少:)是问题所在。

UPDATE2:

我已经将客户端更改为aurelia-fetch-client,如GManProgram建议的那样。 Here is the new output 我似乎把api的地址放在自己的地址后面。我可以强迫它只使用api地址吗?

2 个答案:

答案 0 :(得分:2)

首先,首先,在您发布的示例中,您在URL中的http后面缺少:个字符。

如果没有解决问题,而您正在使用HttpClient中的aurelia-fetch-client,那么您可能需要尝试使用.fetch方法而不是.get方法

http://aurelia.io/hub.html#/doc/api/aurelia/fetch-client/1.1.0/class/HttpClient

在你的情况下,因为看起来你期待json,典型的提取调用看起来像:

return this.httpClient.fetch('http://localhost:3000/api/posts')
  .then(response => response.json())
  .then(response => new CaseModel(response));

您还可以从aurelia-fetch-client导入json方法。

否则,可能已经在应用程序中使用基本URL配置了HttpClient并且它让你搞砸了?

答案 1 :(得分:1)

怎么样:

return client.get('posts','callback')