我用jQuery手机和Phonegap (现在的Cordova)开发了一个iPhone/Android应用程序。这个应用程序使用不同的服务,没有问题。其中一个服务是Soap服务,因此我使用jsSOAPClient (jquery.jqSOAPClient.js)作为jQuery来请求服务。我对iOS设备一点问题都没有,但是在安卓系统上查询总是失败的。
在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“"status”值为"error“,"SOAPClient.Status”(等于"xData.status")值为"0“。
服务器似乎完全没有收到请求..。
我重复一遍,具有相同请求数据的相同代码在iOS上有结果。
谢谢你帮忙。
/编辑*/ I试图注释这一行:
//type: "POST",这似乎有效,我的意思是在这种情况下我有一个200状态代码,即使我有一个解析错误,因为意外的响应格式。
发布于 2012-08-07 14:50:37
显然,在Android2.x中存在一个错误,其中设置“内容长度”标题会导致您所描述的问题。看起来这个bug已经在Android4.0.3中修复了。所以,尝试在4.0.3模拟器中未修改的代码,它应该可以工作,然后返回到2.x并移除内容长度标题,看看它是否也能工作。
https://stackoverflow.com/questions/10176985
复制相似问题