gpt4 book ai didi

jquery - 使用 jQuery/Phonegap 的 Soap 查询在 Android 上总是失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:26 25 4
gpt4 key购买 nike

我使用 jQuery mobile 和 Phonegap(现为 Cordova)开发了一个 iPhone/Android 应用程序。这个应用程序使用不同的服务没有问题。其中一项服务是 Soap 服务,因此我使用 jQuery 的 jsSOAPClient (jquery.jqSOAPClient.js) 来请求该服务。我在 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);
}
});

“getResponse”“status”值为“error”,“SOAPClient.Status”(等于“xData.status”)值为“0”。

服务器似乎根本没有收到请求...

我重复一遍,具有相同请求数据的相同代码在 iOS 上会产生结果。

感谢您的帮助。

/ 编辑 */我试图评论这一行:

//type: "POST",

它似乎有效,我的意思是在这种情况下我有一个 200 状态代码,即使由于意外的响应格式我有一个解析错误。

最佳答案

显然在 Android 2.x 中设置“Content-length” header 会导致您描述的问题。看起来像该错误已在 Android 4.0.3 中修复。所以尝试不修改你的代码在 4.0.3 模拟器中,它应该可以工作,然后回到 2.x 和删除 Content-length header 以查看它是否也能正常工作。

关于jquery - 使用 jQuery/Phonegap 的 Soap 查询在 Android 上总是失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10176985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com