我遇到了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地址吗?
答案 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')