Вопрос по soap, android, jquery-mobile, jquery, cordova – Мыльный запрос с jQuery / Phonegap всегда терпит неудачу на Android

11

Я разработал приложение для iPhone / Android с jQuery mobile & amp; PhoneGap (сейчас Кордова). Это приложение использует различные услуги без проблем. Одной из этих служб является Soap, поэтому я использую jsSOAPClient (jquery.jqSOAPClient.js) для jQuery, чтобы запросить услугу. У меня вообще нет проблем с устройством iOS, но запрос на Android всегда терпит неудачу.

В jsSOAPClient запрос выглядит так:

<code>        function getResponse(xData, status) {
            if(!!callback) {
                SOAPClient.Status = xData.status;
                SOAPClient.ResponseText = xData.responseText;
                SOAPClient.ResponseXML = xData.responseXML;
                callback(xData.responseXML);
            }
        }

        $.ajax({
             type: "POST",
             url: SOAPClient.Proxy,
             dataType: "xml",
             processData: false,
             data: content,
             complete: getResponse,
             beforeSend: function(req) {
                req.setRequestHeader("Method", "POST");
                req.setRequestHeader("Content-Length", SOAPClient.ContentLength);
                req.setRequestHeader("Content-Type", SOAPClient.ContentType + "; charset=\"" + SOAPClient.CharSet + "\"");
                req.setRequestHeader("SOAPServer", SOAPClient.SOAPServer);
                req.setRequestHeader("SOAPAction", soapReq.Action);
             }
        });
</code>

& Quot; getResponse & quot; & Quot; статус & Quot; значение равно «ошибка»; и & quot; SOAPClient.Status & quot; (равно "xData.status") значение равно "0".

Сервер, похоже, вообще не получает запрос ...

Я повторяю, что тот же код с теми же данными запроса имеет результаты на iOS.

Спасибо за помощь.

/ EDIT */ I tried to comment the line :

<code>//type: "POST",
</code>

Кажется, это работает, я имею в виду, у меня есть 200 код состояния в этом случае, даже если у меня есть ошибка разбора из-за неожиданного формата ответа.

Вот две ссылки людей, видящих то же самое, что и мы в Wireshark:code.google.com/p/android/issues/detail?id=8334 а такжеgroups.google.com/group/android-security-discuss/tree/… Michael Potter
& quot; TLSv1, кажется, прерывается с зашифрованным предупреждением, которое подтверждается сервером. Есть пакеты FIN с последующим сбросом (RST). Это похоже на рукопожатие, которое терпит неудачу на клиенте в конце процесса переговоров. & Quot; Я посмотрел сообщение и увидел следующее: «Уровень записи TLSv1: зашифрованное предупреждение; Тип контента: оповещение (21); Версия TLS 1.0 (0x0301); Длина 24; Сообщение оповещения. Зашифрованное оповещение & quot ;. Как и у ОП, у меня проблема только на Android. Michael Potter
У меня та же самая проблема, следовательно, мое предложение награды. У меня есть дополнительная информация. Я попросил администратора сети использовать wireshark для просмотра пакетов между телефоном и сервером. Вот что он заметил: Michael Potter
Просто чтобы убедиться: ваш прокси работает в том же домене, что и ваш JS? Nathan Fig

Ваш Ответ

1   ответ
1

Видимо есть ошибка в Android 2.x, где установка & Quot; Content-Length & Quot; Заголовок вызывает проблему, которую вы описываете. Это выглядит как ошибка была исправлена в Android 4.0.3. Так что попробуйте свой код без изменений в эмуляторе 4.0.3, и он должен работать, затем вернуться к 2.x и удалите заголовок Content-length, чтобы увидеть, работает ли он также.

Похожие вопросы