拦截http调用以在标题中不包含语言

时间:2018-09-26 12:26:01

标签: angular6

我正在尝试通过标题传递用户的语言首选项。但这还没有过去。我的方法是GET,但在后端我看到OPTIONS成功完成,但是我从未执行过的实际GET请求。

@Injectable()
export class InterceptAPICalls implements HttpInterceptor {

    constructor() { }

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

        try {

         var token=currentUserToken(); //get current user token

        // add it if we have one

        if (token) {
            req = req.clone({ headers: req.headers.set('Authorization','Bearer ' + token) });
        }



        }
catch (e){
    if(e instanceof TypeError){
        //most porbably currentUser is not found
    }
}




        // setting the accept header

        req = req.clone({ headers: req.headers.set('Accept', 'application/json') });
        //add language

          var lang=localStorage.getItem('lang') || 'en'; //get the language
        req = req.clone({ headers: req.headers.set('language',lang) }); //add to header.


        return next.handle(req);
    }
}

1 个答案:

答案 0 :(得分:0)

您是否可能遇到CORS问题?如果您的服务器位于其他域中,则需要配置CORS以允许客户端的来源。否则,浏览器将阻止该请求。 https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS