Ich habe Probleme beim Erstellen von HTTP-Anfragen mit GWT 2.4 (und JQueryMobile jquery.mobile-1.0rc1.min.js, aber nicht für irgendwelche Anrufe) auf Phonegap 1.1.0. Was ich tun möchte, ist die POST-Methode auf einem anderen Server zu verwenden, um Inhalte zu empfangen und anzuzeigen.
Auf dem Desktop funktioniert es einwandfrei (dank einer Reverse-Proxy-Konfiguration). Auf Phonegap habe ich gelesen, dass "die Richtlinie zur Beschränkung von Quelldomänen keine Auswirkungen auf PhoneGap-Anwendungen hat. Da die HTML-Dateien von Webkit mit dem file://-Protokoll aufgerufen werden, gilt die Sicherheitsrichtlinie nicht.". Allerdings scheint die Anfrage auf dem Telefon nie gemacht zu werden, da die Antwort leer ist und der Statuscode 0 - ein ähnliches Verhalten, das ich zuvor hatte, bevor ich das Cross-Domain-Problem auf dem Desktop gelöst habe.
Ich verwende den normalen RequestBuilder in GWT, um meine Anfragen zu senden. Irgendwelche Ideen, warum das passiert? Alle Berechtigungen auf Phonegap sind aktiv.
Bearbeiten: Hier ist mein Java-Code, der die Anfrage sendet, aus dem ich meinen Soap-Envelope weggelassen habe:
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,url);
rb.setHeader("SOAPAction", "assertIdentityWithSimpleAuthentication");
rb.setHeader("Content-type", "application/x-www-form-urlencoded");
String envelope = "etc"; //das ist mein 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"); //das parst nur die Antwort, um den benötigten String zu erhalten
Window.alert("Erfolg: "+ aid);
sendAssertionID(aid); //und sendet ihn an eine andere Funktion
}
else setError(response);
}
});
}
catch (RequestException ex) {
requestFailed(ex);
}