有时当我在Google App Engine上调用rpc到我的应用时,会抛出错误。 通常我只是将错误代码与Window.Alert()放在一起,然后去阅读日志并解决问题..
但是这次错误代码只是“0”,并且没有任何内容放在日志文件中。 代码如下所示:
myService.doStuff(new AsyncCallback<Boolean>()
{
@Override
public void onSuccess(Boolean result)
{
if(result)
Window.alert("yay");
else
Window.alert("nay");
}
@Override
public void onFailure(Throwable caught)
{
Window.alert(caught.getMessage());
}
});
大多数时候,我得到一个yay / nay取决于成功,但是有些罕见的时候我得到一个“0”..这是什么? :■
服务器端代码可以是真正的,获取/存储在数据存储区中,检查用户是否已登录等。这在我的大多数RPC调用中随机发生。
答案 0 :(得分:1)
caught
对象可能是StatusCodeException
的一个实例。当底层XHR未被浏览器传输时,会看到0状态代码,尽管这种情况的触发器在某种程度上取决于浏览器。例如,在尝试为file://
URL创建XHR时会看到0状态代码(尽管这可能不是这种情况下发生的情况)。
由于您将问题描述为随机出现,我猜测浏览器的环境中存在影响XHR的问题。这只发生在一台浏览器上,还是机器上安装的所有浏览器上?这是在多台机器上发生的吗?