Я компилирую приложение Ionic версии 1 на устройство.
Когда я запускаю ionic serve в браузере, я могу искать и получать результат поиска в качестве возврата.
Я использую http.post:
$http.post("http://www.example.com/myapi/mysearch.php", $scope.formData )
.success( function(data) {
После установки на смартфон все, что у меня получилось, это сообщение об ошибке (error).
Я думаю, что это может быть отсутствие плагина Cordova из белого списка, который я удаляю и снова переустанавливаю.
Также добавили:
<meta http-equiv = "Content-Security-Policy" content = "default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
В файл index.html.
Как я могу включить apk для отправки запросов к API?
Отладка с реального устройства с использованием инструментов Chrome возвращает это сообщение об ошибке:
Failed to load http://www.myexample.com/api/myexampleapi.php:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
Вот моя ионная информация:
Ionic:
ionic (Ionic CLI) : 4.1.2 (C:\Users\myuser\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : ionic1 1.1.0
@ionic/v1-toolkit : 1.0.8
Cordova:
cordova (Cordova CLI) : 8.0.0
Cordova Platforms : none
Cordova Plugins : not available
System:
NodeJS : v8.10.0 (C:\Program Files\nodejs\node.exe)
npm : 6.4.1
OS : Windows 7
Environment:
Это мой файл config.xml:
<?xml version='1.0' encoding='utf-8'?>
<widget id = "io.ionic.starter" version = "0.0.1" xmlns = "http://www.w3.org/ns/widgets" xmlns:cdv = "http://cordova.apache.org/ns/1.0">
<name>MyApp</name>
<description>An awesome Ionic/Cordova app.</description>
<author email = "hi@ionicframework" href = "http://ionicframework.com/">Ionic Framework Team</author>
<content src = "index.html" />
<access origin = "*" />
<access origin = "http://www.example.com/api/apiexample.php" />
<allow-intent href = "http://*/*" />
<allow-intent href = "https://*/*" />
<allow-intent href = "tel:*" />
<allow-intent href = "sms:*" />
<allow-intent href = "mailto:*" />
<allow-intent href = "geo:*" />
<preference name = "ScrollEnabled" value = "false" />
<preference name = "android-minSdkVersion" value = "19" />
<preference name = "BackupWebStorage" value = "none" />
<preference name = "SplashMaintainAspectRatio" value = "true" />
<preference name = "FadeSplashScreenDuration" value = "300" />
<preference name = "SplashShowOnlyFirstTime" value = "false" />
<preference name = "SplashScreen" value = "screen" />
<preference name = "SplashScreenDelay" value = "3000" />
<platform name = "android">
<allow-intent href = "market:*" />
<icon density = "ldpi" src = "resources/android/icon/drawable-ldpi-icon.png" />
<icon density = "mdpi" src = "resources/android/icon/drawable-mdpi-icon.png" />
<icon density = "hdpi" src = "resources/android/icon/drawable-hdpi-icon.png" />
<icon density = "xhdpi" src = "resources/android/icon/drawable-xhdpi-icon.png" />
<icon density = "xxhdpi" src = "resources/android/icon/drawable-xxhdpi-icon.png" />
<icon density = "xxxhdpi" src = "resources/android/icon/drawable-xxxhdpi-icon.png" />
<splash density = "land-ldpi" src = "resources/android/splash/drawable-land-ldpi-screen.png" />
<splash density = "land-mdpi" src = "resources/android/splash/drawable-land-mdpi-screen.png" />
<splash density = "land-hdpi" src = "resources/android/splash/drawable-land-hdpi-screen.png" />
<splash density = "land-xhdpi" src = "resources/android/splash/drawable-land-xhdpi-screen.png" />
<splash density = "land-xxhdpi" src = "resources/android/splash/drawable-land-xxhdpi-screen.png" />
<splash density = "land-xxxhdpi" src = "resources/android/splash/drawable-land-xxxhdpi-screen.png" />
<splash density = "port-ldpi" src = "resources/android/splash/drawable-port-ldpi-screen.png" />
<splash density = "port-mdpi" src = "resources/android/splash/drawable-port-mdpi-screen.png" />
<splash density = "port-hdpi" src = "resources/android/splash/drawable-port-hdpi-screen.png" />
<splash density = "port-xhdpi" src = "resources/android/splash/drawable-port-xhdpi-screen.png" />
<splash density = "port-xxhdpi" src = "resources/android/splash/drawable-port-xxhdpi-screen.png" />
<splash density = "port-xxxhdpi" src = "resources/android/splash/drawable-port-xxxhdpi-screen.png" />
</platform>
<platform name = "ios">
<allow-intent href = "itms:*" />
<allow-intent href = "itms-apps:*" />
<icon height = "57" src = "resources/ios/icon/icon.png" width = "57" />
<icon height = "114" src = "resources/ios/icon/[email protected]" width = "114" />
<icon height = "40" src = "resources/ios/icon/icon-40.png" width = "40" />
<icon height = "80" src = "resources/ios/icon/[email protected]" width = "80" />
<icon height = "120" src = "resources/ios/icon/[email protected]" width = "120" />
<icon height = "50" src = "resources/ios/icon/icon-50.png" width = "50" />
<icon height = "100" src = "resources/ios/icon/[email protected]" width = "100" />
<icon height = "60" src = "resources/ios/icon/icon-60.png" width = "60" />
<icon height = "120" src = "resources/ios/icon/[email protected]" width = "120" />
<icon height = "180" src = "resources/ios/icon/[email protected]" width = "180" />
<icon height = "72" src = "resources/ios/icon/icon-72.png" width = "72" />
<icon height = "144" src = "resources/ios/icon/[email protected]" width = "144" />
<icon height = "76" src = "resources/ios/icon/icon-76.png" width = "76" />
<icon height = "152" src = "resources/ios/icon/[email protected]" width = "152" />
<icon height = "167" src = "resources/ios/icon/[email protected]" width = "167" />
<icon height = "29" src = "resources/ios/icon/icon-small.png" width = "29" />
<icon height = "58" src = "resources/ios/icon/[email protected]" width = "58" />
<icon height = "87" src = "resources/ios/icon/[email protected]" width = "87" />
<icon height = "1024" src = "resources/ios/icon/icon-1024.png" width = "1024" />
<splash height = "1136" src = "resources/ios/splash/Default-568h@2x~iphone.png" width = "640" />
<splash height = "1334" src = "resources/ios/splash/Default-667h.png" width = "750" />
<splash height = "2208" src = "resources/ios/splash/Default-736h.png" width = "1242" />
<splash height = "1242" src = "resources/ios/splash/Default-Landscape-736h.png" width = "2208" />
<splash height = "1536" src = "resources/ios/splash/Default-Landscape@2x~ipad.png" width = "2048" />
<splash height = "2048" src = "resources/ios/splash/Default-Landscape@~ipadpro.png" width = "2732" />
<splash height = "768" src = "resources/ios/splash/Default-Landscape~ipad.png" width = "1024" />
<splash height = "2048" src = "resources/ios/splash/Default-Portrait@2x~ipad.png" width = "1536" />
<splash height = "2732" src = "resources/ios/splash/Default-Portrait@~ipadpro.png" width = "2048" />
<splash height = "1024" src = "resources/ios/splash/Default-Portrait~ipad.png" width = "768" />
<splash height = "960" src = "resources/ios/splash/Default@2x~iphone.png" width = "640" />
<splash height = "480" src = "resources/ios/splash/Default~iphone.png" width = "320" />
<splash height = "2732" src = "resources/ios/splash/Default@2x~universal~anyany.png" width = "2732" />
</platform>
<plugin name = "cordova-plugin-whitelist" spec = "1.3.3" />
<plugin name = "cordova-plugin-statusbar" spec = "2.4.2" />
<plugin name = "cordova-plugin-device" spec = "2.0.2" />
<plugin name = "cordova-plugin-splashscreen" spec = "5.0.2" />
<plugin name = "cordova-plugin-ionic-webview" spec = "^2.0.0" />
<plugin name = "cordova-plugin-ionic-keyboard" spec = "^2.0.5" />
<engine name = "browser" spec = "^5.0.4" />
<engine name = "android" spec = "7.0.0" />
</widget>
конечно, я просто редактирую основную часть вопроса
Также у меня есть $ httpProvider.defaults.headers.post ['Content-Type'] = 'application / x-www-form-urlencoded; charset = utf-8'; в файл app.js





Чтобы предотвратить это, вы можете использовать плагин Cordova http. Это собственный способ выполнения HTTP-вызовов (Плагин Cordova http). Также вы можете проверить ту же проблему в версии ionic 3 в этом отвечать
Спасибо, Sescudero, я установил, и теперь все работает нормально.
Можете показать файл config.xml?