繁体   English   中英

如何通过扩展BrowserXhr在Angular2中设置标题?

[英]How to set headers in Angular2 by extending BrowserXhr?

我正在为Angular 2应用设置标题。 这是我的代码:

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

当我运行它给错误

在此处输入图片说明

如果您没有发布错误,则只能猜测出问题所在。 但是可能您应该在构造函数中添加一个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?);

调用此方法后,您将可以设置请求标头

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM