有时,当我在 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());
}
});
大多数时候,我会得到一个"is"/“否”,具体取决于成功,但是在极少数情况下,我只会得到一个“0”..这是什么? :s
服务器端代码实际上可以是任何东西,在数据存储中获取/存储、检查用户是否登录等。这在我的大多数 RPC 调用中随机发生。
最佳答案
caught
对象可能是 StatusCodeException
的一个实例。当浏览器不传输底层 XHR 时,会看到 0 状态代码,尽管这种情况的触发器在某种程度上依赖于浏览器。例如,当尝试为 file://
URL 创建 XHR 时,会看到 0 状态代码(尽管本例中可能不是这样)。
由于您将问题描述为随机发生,因此我猜测浏览器环境中的某些内容正在影响 XHR。这种情况是仅在单个浏览器上发生,还是在您计算机上安装的所有浏览器上发生?这种情况会发生在多台机器上吗?
关于java - gae gwt RPC 错误 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5645666/