mam ulepszony mój aplikację Cordova iOS do najnowszej wersji:Cordova iOS błąd: null Pochodzenie nie jest dozwolone przez Access-Control-Allow-Origin
iOS 4.1.0
Cordova 6.0.0
I Zaktualizowaliśmy wtyczek, a także dodany nową wtyczkę WKWebView Engine.
Dodałem moje Content-Security-Policy do pliku index.html:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' 'unsafe-inline' data:;connect-src 'self' https://mydomain/myservice/; plugin-types application/pdf">
Moje config.xml zawsze zawierał:
<content src="index.html" />
<access origin="*" />
ale dodałem
<access origin="*.mydomain.*" />
za dokładkę.
kontrolować serwer WWW aplikacja próbuje się połączyć, i mam włączone CORS na nim:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
Serwer posiada ważny certyfikat SSL i wszystkie połączenia do niej https: //.
Mam plist w Xcode posiada:
Allow Arbitrary Loads : Yes
Exception Domains
[mydomain]
NSIncludesSubdomains : Yes
NSTemporaryExceptionAllowsInsecureHTTPLoads : YES
NSTemporaryExceptionMinimumTLSVersion : TLSv1.1
buduję i uruchamianie aplikacji bezpośrednio na urządzenie i za pomocą Safari Develop, aby zobaczyć błędu.
Mam wersję Androida tej aplikacji z własnym zaktualizowanym kodem podstawowym, która działa poprawnie.
Moje dalsze badania wykazały, że przyczyną problemu jest nowa wtyczka WKWebView Engine. Ale jedyne sugestie, które znalazłem o tym są na forach jonowych, a ja nie używam jonowego dla tej wersji.
Wystarczy, aby potwierdzić, to są komunikaty o błędach Dostaję od Safari w debug:
[Error] Failed to load resource: the server responded with a status of 405 (Method Not Allowed) ([my thing], line 0)
[Error] Failed to load resource: Origin null is not allowed by Access-Control-Allow-Origin. ([my thing], line 0)
[Error] XMLHttpRequest cannot load https://[mydomain]/[my service]/[my thing]. Origin null is not allowed by Access-Control-Allow-Origin.
wydaje się, że CORS nie jest poprawnie ustawiony na serwerze. Czy twoja prośba ma nagłówki autoryzacji? – jcesarmobile
Nie. Brakowało mi czegoś. Dodano to w odpowiedzi poniżej. – DaveSav