PHP-скрипт возвращает состояние rejected в fail()

356
16 февраля 2017, 00:19

Отправляю ajax-запрос к php-файлу:

$.ajax({
    url: '/engine/search.php',
    dataType: 'json',
    data: {
        data:data
    },
    method: 'POST',
    success: function(){
        console.log('Request sent successfully. Pending...')
    }
}).fail(function(response){
    console.log(response);
}).done(function(){
    console.log('OK'); // "OK" не выводится
});

PHP:

<?php 
require('functions.php');
if(isAjax()) {
    $data = $_POST['data'];
    if(isset($data) && !empty($data)) {
        if(!preg_match('/[A-Z][A-Z][A-Z]/', $data['from']) && !preg_match('/[A-Z][A-Z][A-Z]/', $data['to'])) {
            header('HTTP/1.0 500 Internal Server Error');
            die('Bad IATA codes provided');
        }
        if(!validateDate($data['there']) && !validateDate($data['thence'])) {
            header('HTTP/1.0 500 Internal Server Error');
            die('Bad date format provided');
        }
        if(!preg_match('/^[1-9]*$/', $data['adults']) && !preg_match('/^[0-9]*$/', $data['teens']) && !preg_match('/^[0-9]*$/', $data['kids'])) {
            header('HTTP/1.0 500 Internal Server Error');
            die('Bad passengers data provided');
        }
        session_start();
        $_SESSION['search_data'] = json_encode($data);
    }
} else {
    header('HTTP/1.0 403 Forbidden');
    die('Access denied');
}
?>

В нём успешно происходит обработка полученых данных, но почему-то ajax-запрос заходит в fail(), хотя код - 200(OK). В чём может быть проблема?

Answer 1

В теле ajax-запроса был указан dataType: 'json', из-за которого ajax ждал ответа от сервера в виде json-массива, но так его и не получал.

READ ALSO
jquery input focus out дочерний элемент

jquery input focus out дочерний элемент

Есть input с ajax поиском

491
Отлов ботов с помощью js [требует правки]

Отлов ботов с помощью js [требует правки]

Помогите с кодом! Разместить на странице, чтоб отлавливать ботов от spy сервисов и тех что кликают по ссылке

333
Сравнение масивов с обьектами и выборка

Сравнение масивов с обьектами и выборка

Есть массив с обьектами "товаров" например

360
Открытие модального окна fancybox 3 $.fancybox.open()

Открытие модального окна fancybox 3 $.fancybox.open()

Открываю модальное окно так:

493