https请求在WP8.1 Cordova App中失败

时间:2015-09-24 11:01:07

标签: cordova windows-phone-8 https sencha-touch

我使用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代码。我看过几个有类似问题但没有具体解决方案的帖子。

1 个答案:

答案 0 :(得分:0)

这个问题非常奇怪:

在第一次通话中,Windows Phone 8.1不允许在网址中传递“API服务器凭据”的“https”。虽然,它允许没有凭据的https或带凭证的http。

解决方法:

我在https开始时进行了一次虚拟呼叫,没有凭据,然后是带有凭据的普通https呼叫。它奏效了!