У меня есть API, запрограммированный с помощью Slim PHP, который отправляет ответы JSON следующим образом:
$response['some-text'] = 'blabla';
$app->response->setStatus(200);
$app->response()->headers->set('Content-Type', 'application/json');
echo json_encode($response, JSON_UNESCAPED_UNICODE);
Теперь, когда я открываю URL-адрес API в браузере, сообщение отображается по желанию. Однако, если я открою тот же url с моим ионным приложением, используя угловой JS, как это:
$http.get("URL").success(function(response) {console.log(response)});
когда я проверю консоль потом, я вижу только код (200), но не JSON с сообщением. Тем не менее, я уверен, что API действительно правильно получил вызов, так как такие действия, как добавление элементов в базу данных, выполняются просто отлично. Но как я могу получить ответ?
/edit Вот скриншот с консоли, как выглядит пустой ответ
Заголовок: http://i.imgur.com/CCawaIA.jpg
Я нашел решение. Хотя я не уверен, что это хороший, он, безусловно, работает.
Я добавил этот код к своей функции ответа в php:
$app->response()->headers->set('Access-Control-Allow-Origin', '*');
$app->response()->headers->set('Access-Control-Allow-Methods', 'GET'); //or whatever you need
$app->response()->headers->set('AAccess-Control-Allow-Headers', 'X-Requested-With');
который, если вы не используете slim php, должен быть равен:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
header("Access-Control-Allow-Headers: X-Requested-With");
.success
используйте.then
..success
амортизируется.