我使用jQuery mobile & Phonegap(现在为Cordova)开发了iPhone/Android应用程序。这个应用程序使用不同的服务没有问题。其中一个服务是Soap,所以我使用jsSOAPClient(jquery.jqSOAPClient.js)用于jQuery以请求服务。我从iOS设备上完全没有问题,但在Android上查询总是失败。使用jQuery/Phonegap的肥皂查询在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);
}
});
的 “GetResponse的”, “状态” 的值是 “错误” 和 “SOAPClient.Status”(等于 “xData.status”)的值是“ 0" 。
服务器似乎没有收到要求在所有...
我再说一遍,用相同的请求DATAS相同的代码对iOS的结果。
感谢您的帮助。
/编辑 */ 我试图评论的行:
//type: "POST",
似乎工作,我的意思是我有一个200个状态码在这种情况下,即使我有一个由于意外的响应格式而解析错误。
我有同样的问题,因此,我提供的赏金。我有一些额外的信息。我让网络管理员使用wireshark观看手机和服务器之间的数据包。以下是他观察到的结果: – 2012-06-19 21:27:49
“TLSv1似乎正在中止服务器确认的加密警报。有FIN包,然后是复位(RST)。这看起来像是在客户端尾部发生故障的握手谈判进程结束。“我看了一条消息,看到:“TLSv1记录层:加密警报;内容类型:警报(21);版本TLS 1.0(0x0301);长度24;警报消息:加密警报”。就像OP一样,我只在Android上遇到问题。 – 2012-06-19 21:35:10
这里有两个链接的人看到我们在wireshark中的同一件事:http://code.google.com/p/android/issues/detail?id = 8334和http://groups.google.com/group/android -security-discuss/tree/browse_frm/month/2010-05?_done =%2Fgroup%2Fandroid-security-discuss%2Fbrowse_frm%2Fmonth%2F2010-05%3F& – 2012-06-19 22:32:43