Некоторые строки в ответе AJAX POST пусты

Я делаю запрос AJAX POST с ответом JSON:

$.ajax({
  url: ApiServiceVdc,
  type: 'POST',
  data: lepost,
  cache: false,
  success: function (data) {
    var detail = '';
    detail += '<b>' + data.media.titre + '</b>';
  },
  error: function () {
    alert('Erreur système !');
  }
});

Вот ответ моего ApiServiceVdc:

media: {
  id: 1,
  type: 1,
  titre: "Jet d'eau vers Cologny",
  alias: "jet-d-eau-vers-cologny",
}

ApiServiceVdc создан с помощью кода PHP7 с использованием правильного заголовка.

header("Content-type: application/json; charset=utf-8");

Значения titre и alias пусты! Я не могу их использовать. Что я сделал не так? Он работает в других скриптах на других серверах.

Заранее спасибо!

Если это ответ на запрос, значения заполняются. Как вы определяете, что они пусты? Похоже, что вы ничего не делаете с переменной detail, поэтому, если вы ожидаете изменения в DOM, это может быть причиной.

Rory McCrossan 21.11.2018 11:48

Однажды у меня возникла проблема, похожая на эту, у меня была проблема с CORS, и я получил способ получить ответ с помощью jsonp. Несмотря на то, что я получил информацию в теле ответа, когда я попытался использовать данные, которые у меня были нулевые.

Brank Victoria 21.11.2018 11:50

В PHP-коде ApiServiceVdc я принудительно устанавливаю значение String с помощью strval () ... если я этого не делаю, ответ будет «undefined» ...

Swiss GeckO 21.11.2018 11:54

@RoryMcCrossan Я знаю, поэтому я сказал, что у меня есть способ получить значения с помощью jsonp. Несмотря на то, что мне удалось увидеть его из консоли веб-браузера, я не смог получить его из сценария.

Brank Victoria 21.11.2018 11:54

@SwissGeckO, почему бы просто не использовать json_encode?

Rory McCrossan 21.11.2018 11:55

@RoryMcCrossan В Api есть json_encode для вывода результата: «echo json_encode ($ dataout); »

Swiss GeckO 21.11.2018 11:56

Я предлагаю вам отладить это шаг за шагом. Сначала используйте консоль, чтобы увидеть, что возвращается в запрос и в каком формате. Затем попробуйте и console.info(data) в обработчике успеха. Затем, наконец, зарегистрируйте одно из конкретных свойств, чтобы убедиться, что оно тоже имеет значение. Вы до сих пор не объяснили, почему считаете, что значения в запросе пусты. И последнее - это запрос к локальному домену?

Rory McCrossan 21.11.2018 11:58

@RoryMcCrossan Спасибо за вашу помощь! запрос находится в локальном домене .... в консоли я вижу ответ «данные» .... а заголовок и псевдоним - ""

Swiss GeckO 21.11.2018 12:02

Вот console.info (данные): media: alias: "" категории: (2) [{…}, {…}] id: 2 params: (2) ["12", "3000x4000"] titre: "" тип: 1 прото: Объект

Swiss GeckO 21.11.2018 12:03

Если я попытаюсь извлечь значение «titre» в консоль ... я получаю ответ: Titre: Ничего не напечатано

Swiss GeckO 21.11.2018 12:04

Учитывая этот вывод, проблема связана с кодом PHP, который возвращает ответ, а не с JS, который его извлекает.

Rory McCrossan 21.11.2018 12:26
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
11
36
1

Ответы 1

Похоже, в вашем ответе есть заголовок и псевдоним. Если вы хотите изменить свою страницу, вам нужно добавить эту «деталь» в DOM. Вы об этом спрашиваете? Если нет, попробуйте поместить dataType: "json" в свой запрос ajax.

Это твой ответ? media: {id: 1, type: 1, title: "Jet d'eau vers Cologny", alias: "jet-d-eau-vers-cologny",} Таким образом, вы уверены, что значения не возвращаются пустыми из вашего API, правда?

G.O. 21.11.2018 12:28

Другие вопросы по теме