404 ошибка при запросе к api в android приложении

154
14 октября 2019, 10:40

Настраиваю api для своего приложения которое создаю на vue js и потом монтирую через cordova в apk и ipa. Создал для теста на удаленном сайте php файл обработчик который принимает запросы (пока простые чисто для теста) и выдает ответ. такого содержания acore.php:

 header('Access-Control-Allow-Origin: *'); 
 header("Content-type: application/json; charset: utf-8");;
 $v['id'] ='11'; $v['nn']='22';
 echo json_encode($v);

а вот так уже в приложении я посылаю туда запрос:

            var request = new XMLHttpRequest();
            request.open('GET', 'http://www.****.com/hyst/acore.php', false);
            request.onload = function() { 
              if (request.status >= 200 && request.status < 400) {
              var data = JSON.parse(request.responseText);
              alert(data.id);
              } else {
              alert(request.status+' error');
              }
            };
            request.send();

Проблема в том что, когда тестирую приложение в разобранном виде в браузере - всё работает, запрос уходит и ответ возвращается ко мне, но после того как собираю всё это cordova в apk и устанавливаю на телефон и пробую там, мне выдает 404 error алвертом который я прописал выше.

так же тестировал на указывая это сервис https://jsonplaceholder.typicode.com/todos/1 та же самая история, что наталкивает на мысль что дело в самой, кордове, что при сборке надо выствалять у самого приложения какие то разрешения на html запросы к сторонним сайтам подскажите кто знает как это решить? вот что у меня стоит в config.xml в корне приложения

Answer 1

Cordova (одна из базовых платформ Ionic) ограничивает запросы только локальными ресурсами (file: //), что приводит к 404-ошибке всех внешних запросов.

Чтобы исправить это поведение, вам нужно использовать cordova-plugin-whitelist и настроить его под свой API.

Делается это так.

Сначала добавьте плагин в проект:

cordova plugin add https://github.com/apache/cordova-plugin-whitelist.git

Затем добавьте свой API в белый список в файле config.xml:

<allow-intent href="*://*api.parse.com/*"/>

Оригинал ответа на enSO

READ ALSO
Нужно увидеть какие связи в бд

Нужно увидеть какие связи в бд

Нужно увидеть какие связи в бд, экспортирована в SQL с помощью браузера БД для SQLite, после этого запустил ее в workbanch и не могу найти как включить...

126
Два блока &lt;div&gt; рядом в HTML в Qt 5.5

Два блока <div> рядом в HTML в Qt 5.5

Использую метод setHtml() класса QTextDocumentХочу, чтобы 2 блока отрисовывались рядом

149
Как вставить изображение в текст

Как вставить изображение в текст

мне нужно вставить изображение в текст c помощью html и css, как это сделать вот так

127