2016-12-14 28 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