Я разработал приложение для iPhone/Android с мобильным телефоном jQuery и Phonegap (теперь Cordova). Это приложение использует разные службы без проблем. Одна из этих служб - это Soap, поэтому я использую jsSOAPClient (jquery.jqSOAPClient.js) для jQuery, чтобы запросить услугу. У меня нет никаких проблем с устройства iOS, но запрос всегда терпит неудачу на Android.
В jsSOAPClient запрос выглядит так:
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);
}
});
Значение "status" "getResponse" - "ошибка", а значение "SOAPClient.Status" (равное "xData.status" ) равно "0".
Сервер, похоже, вообще не получает запрос...
Я повторяю, что тот же код с теми же запросами имеет результаты в iOS.
Спасибо за помощь.
/ EDIT */ Я попытался прокомментировать строку:
//type: "POST",
похоже, работает, я имею в виду, что у меня есть код состояния 200 в этом случае, даже если у меня есть ошибка синтаксического анализа из-за неожиданного формата ответа.