Вызов Ajax переходит в блок ошибок без каких-либо очевидных причин

#javascript #php #ajax

#javascript #php #ajax

Вопрос:

Я пытаюсь выполнить вызов ajax для моего файла серверного сервера php. Однако вызов возвращает неопределенный объект и переходит к функции ошибки без указания причины. Я не могу разобраться в проблеме.

Вот вызов ajax:

 function getStationList(){

        console.log("Station List");

        $.ajax({
            type: "POST",
            url: "dist/php/charts_data.php",
            dataType: 'json',
            data: {functionname: 'getStationsData', arguments: 'na'},
            
            success: function(obj){

                stations = obj.stationList;
                stationIDs = obj.stationID;
                stationCount = obj.row_count;

                setStationOptions(0);
            },
            error: function(obj){
              console.log("1");
              console.log(obj.error);
            }
        });
    }
 

Поскольку файл php будет иметь несколько разных функций вызова базы данных, я помещаю функции в регистр переключения, как показано ниже:

 switch($_POST['functionname']){

        case 'getStationsData':
            $sql = "SELECT * FROM Conf_Station";
            $params = array();
            $options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
            $stmt = sqlsrv_query($conn, $sql, $params, $options);


            $aResult['row_count'] = sqlsrv_num_rows( $stmt );
            $aResult['stationList'] = array();
            $aResult['stationID'] = array();
    
            while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
              array_push($aResult['stationList'],$row['Station']);
              array_push($aResult['stationID'],$row['StationID']);
            }
            sqlsrv_free_stmt( $stmt);

        break;

        default: $aResult['error'] = 'Not found function '.$_POST['functionname'].'!'; 
    }
 

Но выполнение приведенного выше дает мне это:

Сообщение консоли

введите описание изображения здесь

Я в недоумении. Может кто-нибудь, пожалуйста, помочь с этим?

Комментарии:

1. У вас есть возврат $aResult к интерфейсному коду через оператор echo или print_r после кодирования json .

2. console.log(obj.error); неверно. Читать api.jquery.com/jQuery.ajax/#jqXHR и скажите нам, где говорится, что объект jqXHR, переданный в функцию error, содержит свойство «error»? Есть список свойств, которые он возвращает… попробуйте один из них вместо этого. Также, пожалуйста, используйте сетевой инструмент вашего браузера, чтобы узнать, что произошло с запросом — вы можете увидеть статус, с которым он вернулся, а также перейти к нему, чтобы увидеть необработанный ответ.

3. Также, как говорится в первом комментарии, неясно, действительно ли / где в PHP вы отправляете ответ JSON обратно в браузер.