我在Phonegap 1.1.0上使用GWT 2.4(和JQueryMobile jquery.mobile-1.0rc1.min.js,但不是与调用相关的任何内容)进行HTTP请求时遇到了麻烦。我想做的是在另一台服务器上使用POST方法来接收内容并显示它。
在桌面上,它工作得很好(感谢反向代理配置)。在Phonegap上,我读到"跨域安全策略不影响Phonegap应用程序"。由于html文件是由webkit使用file://协议调用的,因此安全策略不适用。然而,似乎从来没有在电话上发出请求,因为响应是空的,状态码为0 -这是我在解决桌面跨域问题之前遇到的类似行为。
我正在使用GWT上的常规RequestBuilder来发送请求。你知道为什么会这样吗?Phonegap的所有权限都是活动的。
edit:这是我发送请求的Java代码,我省略了soap信封:
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,url);
rb.setHeader("SOAPAction", "assertIdentityWithSimpleAuthentication");
rb.setHeader("Content-type", "application/x-www-form-urlencoded");
String envelope = "etc"; //this is my soap envelope,
try{
rb.sendRequest(envelope, new RequestCallback() {
public void onError(Request request, Throwable exception) {
requestFailed(exception);
}
public void onResponseReceived(Request request, Response response) {
if(response.getStatusCode() == 200){
String aid = Tools.parseMessage(response.getText(),"assertionId"); //this just parses the response in order to get the string I need
Window.alert("Sucess: "+ aid);
sendAssertionID(aid); //and sends it to another function
}
else setError(response);
}
});
}
catch (RequestException ex) {
requestFailed(ex);
}
检查您的url。你的代码在我的android设备上工作得很好,但由于代码为0的无效url而失败。
需要以http://或https://