gpt4 book ai didi

javascript - jQuery 的 ajax 函数在 Android PhoneGap 应用程序中不起作用

转载 作者:可可西里 更新时间:2023-11-01 19:08:10 26 4
gpt4 key购买 nike

我想在移动应用程序中通过 ajax 访问开放 API,它在 iphone 中工作正常但在 Android phonegap 应用程序中不起作用:

返回错误->“错误消息-null,类型错误-表达式'data'[null]的结果不是对象和错误状态-parsererror”

是否有任何浏览器设置需要遵循。

我想在 android-phonegap 应用程序中调用网络服务:

$.ajax({  
url:'stringURL',
beforeSend: function(x) {
x.setRequestHeader('Authorization','username/pwd');
},
dataType:"xml",
contentType:'application/xml',
timeout:10000,
type:'POST',
success:function(data) {
alert(data);
},
error:function(XMLHttpRequest,textStatus, errorThrown) {
alert("Error status :"+textStatus);
alert("Error type :"+errorThrown);
alert("Error message :"+XMLHttpRequest.responseXML);
}
});

最佳答案

看来获取的数据存在解析错误。您希望 XMLHttpRequest 解析 XML 数据,因此获取的 URL 必须返回有效的 XML。有几个可能的原因导致它在一个平台上有效但在另一个平台上失败:

- 浏览器请求头可能不同,导致服务器响应不同。一些服务器可能会在出现问题时给出 HTTP 200 状态答案和一些错误消息,这不会解析为有效的 XML。

-返回的 XML 可能有问题并且在 iPhone 上解析良好,因为那里的浏览器存在问题,但在 Android 使用的另一个 WebKit 版本/变体上失败。

-由于其他请求头、提供者、代理或其他影响,获取的数据已损坏。例如,一些代理只处理 HTTP/1.0 请求,而行为不佳的服务器每次都使用分块编码服务 HTTP/1.1,因此 XML 将被分块 header 损坏。

出于调试目的,您可以将请求更改为文本请求并显示获取的数据,如果可能的话,甚至可以在您的应用程序中将其保存到设备的 SD 卡中。然后您可以验证它是否完好无损并且实际上是有效的 XML。

关于javascript - jQuery 的 ajax 函数在 Android PhoneGap 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3708282/

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