GWT + Phonegap Кросс-доменные запросы не работают - PullRequest
2 голосов
/ 13 октября 2011

У меня проблемы с выполнением HTTP-запросов с использованием GWT 2.4 (и JQueryMobile jquery.mobile-1.0rc1.min.js, но не для чего-либо, связанного с вызовами) в Phonegap 1.1.0.Я хочу использовать метод POST на другом сервере, чтобы получать контент и отображать его.

На рабочем столе работает нормально (благодаря конфигурации обратного прокси).На Phonegap я прочитал, что "междоменная политика безопасности не влияет на приложения PhoneGap. Поскольку html-файлы вызываются webkit с протоколом file: //, политика безопасности не применяется." .Тем не менее, кажется, что запрос никогда не делается по телефону, так как ответ пуст и код состояния 0 - такое же поведение, с которым я сталкивался до того, как решил проблему междоменного доступа на рабочем столе.

Я использую обычный RequestBuilder на GWT для отправки своих запросов.Любые идеи о том, почему это происходит?Все разрешения на Phonegap активны.

edit : Вот мой Java-код, который отправляет запрос, из которого я пропустил свой мыльный конверт:

    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);
      }         

1 Ответ

1 голос
/ 13 октября 2011

Проверьте ваш URL.Ваш код отлично работает на моих устройствах Android, но не работает с неверным URL с кодом 0.

Он должен начинаться с http: // или https://

...