Microsoft Dynamics NAV 2013中間層で利用できるODATA Webサービスと情報を同期するCordovaでアプリケーションを開発しています。 Androidの場合、接続に問題はなく、iOS 8および9では問題なく動作します。 iOS 10を使用するデバイスでは、接続が機能せず、HTTP 400 Bad Requestエラーが返されます。 接続は、以下の構造を有している(これは、テストコードでAndroidとiOS 8,9上で動作ではなく、IOSの10で)iOS 10へのアップデート後にCORDovaアプリケーションがDynamics NAV Webサービス(ODATA)に接続できない
var xreq = new XMLHttpRequest();
xreq.open('GET', "http://domain:port/MIDDLETIER/OData/MobileSetupMWP?$format=json",true,username,password);
xreq.onreadystatechange = function() {
if (xreq.readyState == 4) {
if (xreq.status == 200) {
alert("success");
} else {
alert("failure");
}
}
}
try {
xreq.send();
} catch (e) {
}
Webサービス認証としてダイジェストを使用して、httpとして利用可能であるとhttpsウェブサービスhttpとhttpsはどちらもAndroidとiOS 8,9で動作します。認証なしでhttp ODATA Webサービスに接続すると(http://services.odata.org/V3/OData/OData.svc/)、iOS 10で問題が発生しているようです。
我々はすでにプラグインで、次の部分が含まれている:
<platform name="ios">
<config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
<string>Für Bildvorschau wird die geräteeigene Fotogalerie verwendet</string>
</config-file>
<config-file target="*-Info.plist" parent="ITSAppUsesNonExemptEncryption">
<false/>
</config-file>
<config-file target="*-Info.plist" parent="NSAppTransportSecurity">
<dict><key>NSAllowsArbitraryLoads</key><true /></dict>
</config-file>
</platform>
これは、我々は問題が何ができるかまたは私達がテストできるものの任意のアイデア
<meta http-equiv="Content-Security-Policy" content="default-src * blob: data: ws: wss: gap://ready ; style-src 'self' 'unsafe-inline' 'unsafe-eval' * ;
script-src 'self' 'unsafe-inline' 'unsafe-eval' * ; connect-src * 'self' 'unsafe-inline' 'unsafe-eval' data: blob: ws: wss: ; img-src * data: blob:">
を使用しているコンテンツセキュリティポリシー?ここで説明するように