2016-12-14 48 views
0

我正在爲Angular 2應用程序設置標題。 這裏是我的代碼:如何通過擴展BrowserXhr在Angular2中設置標題?

@Injectable() 
    export class browserXhr extends BrowserXhr { 
     constructor() {} 
     build(): any { 
     let xhr:XMLHttpRequest = super.build(); 
     xhr.setRequestHeader('X-Custom-Header', 'value'); 
     return <any>(xhr); 
     } 
    } 

當我運行它給錯誤

enter image description here

+0

能否請你加你的錯誤這個問題。 – M4R1KU

+0

它在 - > xhr.setRequestHeader('X-Custom-Header','value');說不能設置。 – Teekam

回答

1

沒有你張貼的錯誤,它只是猜測工作,以什麼地方出了錯。但可能你應該在構造函數中添加一個super()調用。另一個值得注意的地方是除了首都以外,這個班級的名字幾乎是一樣的。這是常見的做法有你的類名PascalCase

@Injectable() 
export class MyBrowserXhr extends BrowserXhr { 
     constructor() { 
     super(); //<-- here 
     } 

     build(): XMLHttpRequest { 
     let xhr:XMLHttpRequest = <XMLHttpRequest>super.build(); 
     xhr.open(method, url, async?, user?, password?); //fill in the correct details 
     xhr.setRequestHeader('X-Custom-Header', 'value'); 
     return xhr; 
     } 
} 

你發佈你的錯誤後,很明顯你必須首先做的事情。在設置請求頭,你必須使用open方法來打開請求:

xhr.open(method, url, async?, user?, password?); 

調用此方法後,您就可以設置您的請求頭

+0

我應用上面的方法,但它給錯誤我發佈它的問題部分。 – Teekam