2017-07-31 3 views
1

Je suis très nouveau à la demande http et j'essaie d'obtenir des données avec https://darksky.net/dev/docs/faq. Ils ne prennent pas en charge CORS et suggèrent que je dois utiliser un serveur proxy pour obtenir leurs données.Comment puis-je configurer un proxy avec ma requête http?

J'utilise angulaire et suis en utilisant un service pour la demande http:

import { Injectable } from '@angular/core'; 
import { Headers, Http } from '@angular/http'; 
import 'rxjs/add/operator/toPromise'; 

@Injectable() 
export class ServiceWeather { // Unconventional but I see all my services when typing service 
    constructor(private http: Http) { } 

    private weatherUrl = 'https://api.darksky.net/forecast/[key]/[latitude],[longitude]' 

    public getWeather(): Promise<any> { 
     return this.http.get(this.weatherUrl) 
       .toPromise() 
       .then(response => response.json().data) 
       .catch(this.handleError); 
    } 

    private handleError(error: any): Promise<any> { 
     console.error('An error occurred', error); 
     return Promise.reject(error.message || error); 
    } 
} 

Comment configurer cela avec un serveur proxy?

Utile Extra Info Nécessaire: Quels services de serveur proxy dois-je utiliser pour le développement?

+2

Comme indiqué, vous avez besoin d'un proxy ** serveur **. Vous ne pouvez pas le faire du côté client. –

+0

Juste montre combien je ne comprends pas. Comment puis-je faire cela pour atteindre mon objectif? Pouvez-vous me montrer des tutoriels ou des sources que je devrais lire? – Jonathan002

+0

Donc la question est totalement hors de propos pour Angular. Google pour 'cors proxy' et sélectionnez celui qui convient à votre configuration de serveur. – estus

Répondre

1

Merci pour le commentaire sur 'Cors Proxy'.

J'avais trouvé le service: http://cors-proxy.htmldriven.com et était capable d'obtenir des données de darksky en utilisant leur URL.

private weatherUrl = 'http://cors-proxy.htmldriven.com/?url=https://api.darksky.net/forecast/[key]/[latitude],[longitude]'