Ios Ajax POST请求在sencha应用程序+;框架
我正在用sencha touch 2.1.x开发一个sencha web应用程序 此应用程序需要在web服务器上运行,也需要在iOS应用程序上运行,并与phonegap 3.1打包 web服务器版本运行良好,但在执行Ajax POST请求时,我在iOS版本中遇到了一些问题。这是一个示例代码:Ios Ajax POST请求在sencha应用程序+;框架,ios,ajax,cordova,sencha-touch,Ios,Ajax,Cordova,Sencha Touch,我正在用sencha touch 2.1.x开发一个sencha web应用程序 此应用程序需要在web服务器上运行,也需要在iOS应用程序上运行,并与phonegap 3.1打包 web服务器版本运行良好,但在执行Ajax POST请求时,我在iOS版本中遇到了一些问题。这是一个示例代码: var jsonParams = { "username": loginParams.user, "password": loginParams.pwd, "serverVersi
var jsonParams =
{
"username": loginParams.user,
"password": loginParams.pwd,
"serverVersion": serverVersion
};
var jsonStr = JSON.stringify(jsonParams);
console.log(jsonStr);
Ext.Ajax.request({
url: internalRoute.LOGIN,
headers: {'Content-Type':'application/json'},
method: 'POST',
scope:this,
params: jsonStr,
success: function(response){
.....
},
failure: function(response) {
.....
},
});
有时,这个请求在使用phonegap打包的iOS版本中可以正常工作,但随机失败,因为post负载是空的。console.log(jsonStr)
打印正确的数据,但服务器没有收到任何数据。我还使用HTTP嗅探器捕获发送的包,它不包含POST负载
将代码更改为user jQuery$.ajax
而不是Ext.ajax.request
,问题仍然存在。
你知道什么是错的吗
Thx看起来实际上是一个代理问题,与sencha或phonegap无关。 如果我停用代理,我不会得到其他外部资源,但这个问题永远不会发生。 将搜索如何解决代理问题。
谢谢您的jsonParams总是一样的吗?对我来说,这似乎是逻辑上的失败点。jsonParams由用户输入的登录数据填充
console.log(jsonStr)
始终显示jsonParams数据是正确的。由于这在混合应用程序中失败,您是否可能正在嗅探CORS飞行前请求?那不会有实际的有效载荷。只要飞行前没有出现错误,飞行前会立即发出POST请求。不,不是这样。我正在嗅探POST请求,该请求有时包含用于登录的json数据,但有时不包含任何内容,content length=0,尽管console.log始终在jsonStr var中打印正确的数据。添加了beforeSend
回调的实现,以检查请求数据,它是正确的,但服务器没有收到任何内容。服务器通过代理进行访问。这可能是代理问题吗?