我最近将我的Cordova应用程序更新为Cordova Android 7.1.1(从6.x开始)。我在此应用程序中使用websockets连接到另一个运行websocket服务器的应用程序,该服务器以前运行正常。现在,升级到Cordova Android 7.1.1后,将无法再建立连接。失败,并显示以下消息(来自chrome控制台):
SNAPSHOT
未对负责建立连接的代码进行任何更改。看起来像这样:
WebSocket connection to 'ws://192.168.178.20:52998/' failed:
Error in connection establishment: net::ERR_ACCESS_DENIED
我找不到原因。我已经尝试添加CSP标头等,但无济于事。我确保连接可以正常工作,所以它一定与我想从Cordova Android 6.x到7.x所做的更改有关。
答案 0 :(得分:1)
Cordova中的更改包括遵循CORS标头。现在,您必须确保将CORS设置为允许。例如:
config.xml:
<access origin="*" />
<allow-navigation href="*"/>
index.html中的Content-Security-Policy:
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data:">