我有一项服务来处理与后端的交互。我希望捕获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.")
};
}
}
答案 0 :(得分:8)
替换
catch(this.handleError)
通过
catch(error => this.handleError(error))
否则,您没有将handleError函数绑定到this
。
另请注意,您的状态的正确状态代码为401,而不是403。