I zostały zaktualizowane istniejącą aplikację do Cordova 6.0.0 i mam problemy z systemem go na urządzeniu z systemem iOS z Xcode 7.2.1 kierowania iOS 9.Cordova 6 aplikacja nie może załadować z pliku: // ścieżka
mam zainstalowane wtyczki WKWebView: cordova-plugin-wkwebview-engine 1.0.2
uruchamiając aplikację, która zbudowana jest z angularjs, jedna z pierwszych rzeczy, to stara się zrobić, to otworzyć plik json:
$http.get('data/config.json').success(function(data) {
// do stuff
});
Ale ten błąd w konsola przeglądarki internetowej:
XMLHttpRequest cannot load file:///var/mobile/Containers/Bundle/Application/
E9D74C94-ADC6-410F-9F41-7CE63CB7877F/Milk.app/www/data/config.json. Cross
origin requests are only supported for HTTP.
W pliku config.xml mamy:
<access origin="*" subdomains="true" />
Dlaczego plik : // Żądanie zablokowania takiego i jak mogę to naprawić?
* edit *
Według plugin page:
„W iOS 9, Apple stała się kwestią obecną przez iOS 8, gdzie nie może załadować plików lokalizacyjnych za pomocą file: //, a musi korzystać z lokalnego serwera WWW , ale nadal nie możesz używać XHR z protokołu file: // bez włączonego CORS na twoim serwerze. "
Co mają na myśli: "Twój serwer"? Jaki serwer? Ładujemy lokalny plik, nie ma serwera!
Która wersja jest używana? –
@Meiko to iOS 9.Biorąc pod uwagę, że problem, w którym lokalny serwer sieciowy jest najwyraźniej * naprawiony * dla iOS 9, nie rozumiem części dotyczącej włączania CORS na lokalnym serwerze. Innymi słowy brzmi to tak, jakby nie zostało naprawione! – Ade
Jeśli używasz Cordova 6 i [email protected], to nie potrzebujesz tej wtyczki, Cordova używa wtwebview: http://cordova.apache.org/news/2016/01/28/tools-release. html – Joerg