角4可观察捕获服务未定义

时间:2017-07-15 17:03:33

标签: angular undefined observable

我有一项服务来处理与后端的交互。我希望捕获401状态,表示用户已被后端注销(令牌到期)。因此,当我捕获401时,我保存当前路线,并将它们导航到登录页面。但是,当我发现错误时,路由器服务未定义。这与观察者有关吗?

[HttpPost]
public HttpResponseMessage UploadFile()
{
    try
    {
        if (System.IO.File.Exists(path))
            System.IO.File.Delete(path);
        using (var fileStream = System.IO.File.Create(path))
        {
            stream.CopyTo(fileStream);
        }
        // Once the file part is saved, see if we have enough to merge it
        Shared.Utils UT = new Shared.Utils();
        UT.MergeFile(path);
    }
    catch (IOException ex)
    {
        // handle
    }   

    return new HttpResponseMessage()
    {
        StatusCode = System.Net.HttpStatusCode.OK,
        Content = new StringContent("File uploaded.")
    };
}

}

1 个答案:

答案 0 :(得分:8)

替换

catch(this.handleError)

通过

catch(error => this.handleError(error))

否则,您没有将handleError函数绑定到this

另请注意,您的状态的正确状态代码为401,而不是403。