2017-09-03 73 views
0

我一直在努力使对我的node.js服务器的AJAX调用没有成功。使用科尔多瓦的Android中的AJAX失败

我也做了以下内容:

1)安装了CORS包在我的node.js服务器。 AJAX确实在浏览器中工作。

2)增加了以下内容安全策略的index.html:

<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://maps.googleapis.com https://163.172.175.135"> 

3)添加了几行我的config.xml:

<?xml version='1.0' encoding='utf-8'?> 
<widget id="roda.X.XXXX" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> 
    <name>Roda</name> 
    <description> 
     A sample Apache Cordova application that responds to the deviceready event. 
    </description> 
    <author email="[email protected]" href="http://cordova.io"> 
     Apache Cordova Team 
    </author> 
    <content src="index.html" /> 
    <access origin="*" /> 
    <allow-navigation href="*" /> 
    <allow-intent href="*" /> 
    <allow-intent href="http://*/*" /> 
    <allow-intent href="https://*/*" /> 
    <allow-intent href="tel:*" /> 
    <allow-intent href="sms:*" /> 
    <allow-intent href="mailto:*" /> 
    <allow-intent href="geo:*" /> 
    <platform name="android"> 
     <allow-intent href="market:*" /> 
    </platform> 
    <platform name="ios"> 
     <allow-intent href="itms:*" /> 
     <allow-intent href="itms-apps:*" /> 
    </platform> 
    <engine name="android" spec="^6.2.3" /> 
    <engine name="browser" spec="^4.1.0" /> 
    <plugin name="cordova-plugin-geolocation" spec="^2.4.3" /> 
    <plugin name="cordova-plugin-whitelist" spec="^1.3.2" /> 
</widget> 

有什么我错过了?

+0

请添加确切的错误信息 – Phonolog

+0

不知何故,只有当我将APK签名并上传到Google Play商店时才会出现问题。如果我要通过电缆传输APK,并直接在我的手机中运行AJAX,则会起作用。 –

回答

0

我后来发现,AJAX可以在调试模式下工作,但不能在发布模式下工作。问题是我使用的是IP地址而不是域名连接到服务器,从而导致SSL验证失败。在调试模式下,SSL证书未验证。

Phew。问题解决了!

相关问题