СИТУАЦИЯ:
Я работаю над Ionic-приложением, которое получает данные от API.
До этого API был по адресу http://, и все работало нормально.
Затем мы переместили API в https://, и он больше не работает. Или хорошо, он все еще работает с ним в браузере, но не в телефоне (или эмуляторе).
Я не уверен, в чем проблема. В журнале консоли я вижу, что статус запроса равен 0.
Это может быть связано с белым списком с заголовками или с CORS. Я пробовал несколько подходов, но никто не работал.
БелОГО:
Прежде чем в config.xml появился этот белый список:
<allow-navigation href="#" onclick="location.href='http://*/*'; return false;" />
Я попытался изменить его несколькими способами, но это не устранило проблему. Например, я попытался:
<allow-navigation href="#" onclick="location.href='https://*/*'; return false;" />
и
<allow-navigation href="*" />
API ЗАПРОС:
Это один из примеров запроса API:
$http.get( 'https://MY_DOMAIN.com/mobile/list_mobile_project/' ,{},{"headers" : {"Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8" }})
.success(function(data, status, headers, config)
{
// code
}).
error(function(data, status, headers, config)
{
console.log('Error with the API list_mobile_project');
console.log(data);
console.log(status);
console.log(headers);
console.log(config);
});
ОТВЕТ ИСПОЛЬЗОВАНИЯ API:
И это пример ответа API:
public function list_mobile_project()
{
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
// code
echo json_encode( $project_list );
}
ВОПРОС:
Как заставить API работать и на HTTPS?
Если это проблема с CORS, как включить ее на стороне сервера?