2017-02-21 1 views
1

J'ai un problème avec le client aurelia Http. Mon API (http // localhost: 3000/api/posts) fonctionne correctement. La sortie d'un appel get (en postier ou dans le navigateur) est:aurelia-http-client se connecte à la mauvaise adresse

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

Ceci est mon appel get dans l'application aurelia:

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

And this is the output: Comme vous pouvez le voir dans l'image du réponse contient quelque chose avec "Aurelia" mais mon api n'a jamais touché aurelia alors je pense qu'il y a quelque chose qui ne va pas avec l'URL.

Update1:

Le correctif proposé par GManProgram (manque :) était le problème.

Update2:

J'ai changé au client à l'aurelia-fetch-client comme suggéré GManProgram. Here is the new output Je semble mettre l'adresse de l'API derrière sa propre adresse. Ho puis-je le forcer uniquement à utiliser l'adresse API?

+0

Désolé, je ne ai jamais vu vos modifications et il pourrait être trop tard non. Le client d'extraction est bon si toutes vos ressources sont au même endroit avec des points de terminaison différents (par exemple, vous avez un chemin de publication et de commentaire à l'adresse localhost: 3000). Vous pouvez configurer le client d'extraction pour définir une baseUrl à l'emplacement souhaité. Normalement, je fais la configuration dans main.js et il ressemble à quelque chose comme 'httpClient.configure (config => {config.withBaseUrl ('http: localhost: 300/api /');});' un appel Web est aussi simple que 'httpClient.fetch ('posts')' – GManProgram

+0

De même, le client aurelia-http (qui est similaire au client aurelia-fetch-client) peut être configuré de manière similaire – GManProgram

Répondre

2

Donc, tout d'abord, dans l'exemple que vous avez posté, il vous manque le caractère : après http dans l'URL.

Si cela ne répare pas, et que vous utilisez le HttpClient de aurelia-fetch-client, alors vous voudrez peut-être essayer d'utiliser la méthode de .fetch au lieu de la méthode .get

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

Dans votre cas , car il semble que vous attendez JSON, l'appel typique chercher ressemblerait à ceci:

où vous pouvez également importer la méthode json de aurelia-fetch-client.

Sinon, peut-être que le HttpClient a déjà été configuré dans l'application avec une URL de base et que ça vous gâche?

1

Qu'en est-:

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