2017-07-31 90 views
1

我很新的http請求,並試圖通過https://darksky.net/dev/docs/faq獲取數據。他們不支持CORS,並建議我必須使用代理服務器來獲取他們的數據。如何使用我的http請求配置代理?

我使用的角度和我使用的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); 
    } 
} 

如何使用代理服務器的配置呢?

有用的額外信息需要:我應該使用哪些代理服務器服務進行開發?

+2

如上所述,您需要代理**服務器**。你不能在客戶端做到這一點。 –

+0

只顯示我有多少不明白。我怎樣才能達到我的目標?你能指點我一些教程或我應該閱讀的來源嗎? – Jonathan002

+0

所以這個問題與Angular完全不相關。谷歌的'Cors代理',並選擇一個適合您的服務器設置。 – estus

回答

1

感謝您對'Cors Proxy'的評論。

我發現了服務:http://cors-proxy.htmldriven.com,並能夠通過使用他們的網址從darksky獲取數據。

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