2016-09-15 68 views
14

我正嘗試使用http.get從我的Angular2/ionic2應用發送HTTP GET請求。 HTTP GET請求包含有效的Linkedin訪問令牌,應該返回一些profiledata。然而,當getProfileData()被稱爲出現以下錯誤:Angular 2:EXCEPTION:狀態響應:0表示URL:null

3  229881 group EXCEPTION: Response with status: 0 for URL: null 
4  229895 error EXCEPTION: Response with status: 0 for URL: null 
5  229909 groupEnd 
6  229950 error Uncaught Response with status: 0 for URL: null, http://192.168.178.49:8100/build/js/app.bundle.js, Line: 95774 

還有:

  • 用相同的URL的GET請求時,在www.hurl.it
  • GET請求從被稱爲測試工程該應用使用不同的網址,例如let URL = "https://httpbin.org/get?name=hannes"

職-load.ts:

import { Component } from '@angular/core'; 
import { NavController, Platform, Alert } from 'ionic-angular'; 
import { OnboardingHelloPage } from '../onboarding-hello/onboarding-hello'; 
import { CordovaOauth, LinkedIn } from 'ng2-cordova-oauth/core';  
import { Http, Headers, RequestOptions } from '@angular/http'; 
import 'rxjs/add/operator/map' 


@Component({ 
    templateUrl: 'build/pages/onboarding-load/onboarding-load.html', 
}) 
export class OnboardingLoadPage { 
    private data; 
    private code; 

constructor(private navCtrl: NavController, private platform: Platform, private http: Http) { 
    this.http = http; 
    this.navCtrl = navCtrl; 
    } 

public getProfileData() { 
    let URL = "https://api.linkedin.com/v1/people/~?oauth2_access_token=SOMEVALIDTOKEN&format=json"; 
    //let URL = "https://httpbin.org/get?name=hannes" 

    this.http.get(URL) 
    .map(res => res.json()) 
    .subscribe(data => { 
     this.data = data; 
     console.log(JSON.stringify(data)); 
    }); 
    // go to next page 
    this.viewOnboardingHello(); 
} 
... 
} 
+0

有同樣的問題。這非常煩人。所以基本功能不起作用,涵蓋微不足道的情況 – Roman

+0

需要修復此 – user2320607

+0

當發生此問題時,它通常是一個CORS問題, – LeRoy

回答

9

這可能是一個CORS問題。
您的Angular2 APP託管在另一臺服務器上,而不是您要撥打的API。

如果你想繞過這個(僅用於測試目的),安裝this Chrome extension並添加

訪問控制允許來源:

你的頭。
實際應用中,您應該從服務器(Node,PHP,Python ...)(其中包含angular2 APP)調用API並將數據傳遞到您的angular2 APP。

+0

感謝您爲我工作 – mohammad

3

請注意,服務器剛剛脫機時也會發生這種情況。

我最終在這裏,因爲我想知道是否有狀態0和URL null的官方含義。

+0

有沒有解決方案,以防服務器脫機? – Roberto

+1

在我的情況下,沒有。更具體地說,當我的'data'服務器(一個RESTful API)無法訪問時,我會得到這種迴應。所以Angular應用程序無法獲取任何數據。 –

0

我們有一些在我們的日誌。在挖掘一下之後,似乎他們會在瀏覽器開始導航到新的url後中止Ajax請求。