Как получить HTTP-ответ от Slim PHP Api с Angular JS?

0

У меня есть 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

ответ: http://i.imgur.com/xo46MpJ.jpg

  • 0
    не используйте .success используйте .then . .success амортизируется.
  • 0
    Api находится на том же домене, протоколе и порте, что и запрос на создание страницы?
Показать ещё 6 комментариев

1 ответ

0

Я нашел решение. Хотя я не уверен, что это хороший, он, безусловно, работает.

Я добавил этот код к своей функции ответа в 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");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню