В моем приложении angular я пытаюсь отправить данные в php-скрипт, а затем вернуть обратный вызов.

Здесь представлен код angular:

var data = { value: 'somestring' };

$http.post("post_backend.php", data).success(function(data, status) {
    alert(data + status);
}).error(function(data, status) {
    alert(data + status);
});

В моем php-коде есть простая функция обратного вызова:

if (isset($_POST['value'])) {
    header('Content-Type: application/json');
    echo json_encode('successful callback');
    exit();
}

Но когда он выполняется, я получаю статус успеха в сообщении об оповещении и ничего больше. Я не получаю данных ("успешный обратный вызов") и уже несколько часов не могу понять, в чем проблема?

MyOwnFan

Ответов: 3

Ответы (3)

Попробуйте поставить в ответ корректный JSON, например, echo json_encode(['status'=>'successful callback']);

Этот код работает для меня.

$params = json_decode(trim(file_get_contents('php://input')), true);
if (isset($params['value'])) {
    header('Content-Type: application/json');
    echo json_encode(['status'=>'successful callback']);
    exit();
}

Я нашел ответ. Мне пришлось изменить способ отправки данных в php-скрипт. Я нашел эту очень полезную статью: Как я могу отправить данные как данные формы, а не как полезную нагрузку запроса?

Мне нужно было внедрить jquery и добавить заголовок к моему запросу. В php-скрипте мне не нужно ничего, кроме оператора if и echo.

2022 WebDevInsider