我使用Sencha Touch 2.4.1开发了一个应用程序,并使用Cordova 3.5.0-0.2.7为Windows Phone构建。该应用程序使用有效且可信的SSL证书向服务器发出https OData请求,但这些请求在WP8.1中失败,状态代码为0,状态文本为空白。
WP8.1中的http协议和WP8.0中的http / https也能正常工作。下面是一个带有两个按钮的示例代码 - 一个调用HTTP服务(Working),另一个调用HTTPS服务(Not Working):
{
xtype: 'button',
text: 'HTTP',
handler: function(b, e){
var storeRef = Ext.getStore('ODataStore');
storeRef.getProxy().setUrl("http://myDomain:80/SAP/Odata_Service");
storeRef.load();
}
},
{
xtype: 'button',
text: 'HTTPS',
handler: function(b, e){
var storeRef = Ext.getStore('ODataStore');
storeRef.getProxy().setUrl("https://myDomain:443/SAP/Odata_Service");
storeRef.load();
}
}
我认为必须使用Cordova代码。我看过几个有类似问题但没有具体解决方案的帖子。
答案 0 :(得分:0)
这个问题非常奇怪:
在第一次通话中,Windows Phone 8.1不允许在网址中传递“API服务器凭据”的“https”。虽然,它允许没有凭据的https或带凭证的http。
解决方法:强>
我在https开始时进行了一次虚拟呼叫,没有凭据,然后是带有凭据的普通https呼叫。它奏效了!