May*_*ari 14 javascript ajax jquery android cordova
我想在移动应用程序中通过ajax访问开放API,它在iphone中工作正常但在Android phonegap应用程序中不起作用:
returning error->"error message-null,typeerror-Result of expression 'data'[null] is not an object and error status-parsererror"
是否需要遵循任何浏览器设置.
我想在android-phonegap应用程序中调用web服务:
$.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 将被分块标头损坏。
出于调试目的,您可以将请求更改为文本请求并显示获取的数据,或者甚至将其保存到设备 SD 卡(如果可能)在您的应用程序中。然后您可以验证它是否已完好无损地到达并且实际上是有效的 XML。
| 归档时间: | 
 | 
| 查看次数: | 7478 次 | 
| 最近记录: |