Ответ jQuery на ajax-вызов частично не определен, а сетевой ответ (f + 12) выглядит абсолютно корректно - PullRequest
0 голосов
/ 24 мая 2019

Я использую oracle-db и php-скрипт, который вызывается запросом ajax-call.

PHP-скрипт:

$query = 'SELECT pl.event_id, pl.og2, d.name dst, pl.state, pl.note, pl.createdate FROM publevels pl
  LEFT JOIN dst d on (d.og2 = pl.og2)
  WHERE pl.event_id = ' . params::$data['id'];
$statement = oci_parse(database::$oracle, $query);
oci_execute($statement);
while ($row = oci_fetch_assoc($statement)) {
  $result[] = $row;
}
echo json_encode($result);

Аякс-звонок:

$.ajax({
  type: 'POST',
  url: "index.php?module=ajax&view=read_publevels",
  data: {
    id: currentId
  },
  success: function(data) {                                           
    console.log(data);
  }
})

это работает почти для каждого набора данных. но в некоторых случаях console.log () дает отдельно неопределенный ответ ... я не знаю, почему это случается иногда. журнал выглядит так:

[object Object],[object Object]    [
      0: {
         undefined: undefined
      },
      1: {
         [functions]: ,
         __proto__: { },
         CREATEDATE: "2019-05-23 08:30:16",
         DST: "PW Nürnberg-Rathaus",
         EVENT_ID: "41114",
         NOTE: "import",
         OG2: "0900514010500",
         STATE: "on"
      },
      length: 2    ]

Загадочная вещь заключается в том, что если я взгляну на сетевой трафик с помощью инструментов разработчика браузеров (f12), то трафик будет вполне нормальным.

[{
"EVENT_ID":"41114",
"OG2":"0900500000000",
"DST":"PP Mittelfranken",
"STATE":"on",
"NOTE":"import",
"CREATEDATE":"2019-05-23 08:23:40"},
{"EVENT_ID":"41114",
"OG2":"0900514010500",
"DST":"PW N\u00fcrnberg-Rathaus",
"STATE":"on",
"NOTE":"import",
"CREATEDATE":"2019-05-23 08:30:16"
}]

Так что я не знаю, почему иногда первый набор данных доставляется неправильно ?! Есть идеи?

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Я нашел ошибку. Я использовал массив данных очень позже в функции, которая перемещала некоторые записи от конца к началу в зависимости от других данных. В этом случае для других данных не было записи " PW Nürnberg-Rathaus ", поэтому для данных было установлено значение "undefined".

И из-за сверхпопулярной цепочки переменных данные не определены до того, как неисправная функция выполнила неопределенную работу. Я узнал об этом после того, как создал «ручной» JSON.parse, который отлично работал. После того, как я снова связал результат с ошибочной функцией, он был неопределенным, как и первые данные.

Так что, ребята, спасибо за вашу помощь.

0 голосов
/ 24 мая 2019

Всегда ли это успех?Если нет, вы можете добавить блок ошибок, чтобы проверить, есть ли ошибка на стороне сервера.

$.ajax({
  type: 'POST',
  url: "index.php?module=ajax&view=read_publevels",
  data: {
    id: currentId
  },
  success: function(data) {                                           
    console.log(data);
  },error(data)
{
console.log(data);
}
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...