Я делаю запрос 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 пусты! Я не могу их использовать. Что я сделал не так? Он работает в других скриптах на других серверах.
Заранее спасибо!
Однажды у меня возникла проблема, похожая на эту, у меня была проблема с CORS, и я получил способ получить ответ с помощью jsonp. Несмотря на то, что я получил информацию в теле ответа, когда я попытался использовать данные, которые у меня были нулевые.
В PHP-коде ApiServiceVdc я принудительно устанавливаю значение String с помощью strval () ... если я этого не делаю, ответ будет «undefined» ...
@RoryMcCrossan Я знаю, поэтому я сказал, что у меня есть способ получить значения с помощью jsonp. Несмотря на то, что мне удалось увидеть его из консоли веб-браузера, я не смог получить его из сценария.
@SwissGeckO, почему бы просто не использовать json_encode?
@RoryMcCrossan В Api есть json_encode для вывода результата: «echo json_encode ($ dataout); »
Я предлагаю вам отладить это шаг за шагом. Сначала используйте консоль, чтобы увидеть, что возвращается в запрос и в каком формате. Затем попробуйте и console.info(data) в обработчике успеха. Затем, наконец, зарегистрируйте одно из конкретных свойств, чтобы убедиться, что оно тоже имеет значение. Вы до сих пор не объяснили, почему считаете, что значения в запросе пусты. И последнее - это запрос к локальному домену?
@RoryMcCrossan Спасибо за вашу помощь! запрос находится в локальном домене .... в консоли я вижу ответ «данные» .... а заголовок и псевдоним - ""
Вот console.info (данные): media: alias: "" категории: (2) [{…}, {…}] id: 2 params: (2) ["12", "3000x4000"] titre: "" тип: 1 прото: Объект
Если я попытаюсь извлечь значение «titre» в консоль ... я получаю ответ: Titre: Ничего не напечатано
Учитывая этот вывод, проблема связана с кодом PHP, который возвращает ответ, а не с JS, который его извлекает.

Похоже, в вашем ответе есть заголовок и псевдоним.
Если вы хотите изменить свою страницу, вам нужно добавить эту «деталь» в DOM.
Вы об этом спрашиваете?
Если нет, попробуйте поместить dataType: "json" в свой запрос ajax.
Это твой ответ? media: {id: 1, type: 1, title: "Jet d'eau vers Cologny", alias: "jet-d-eau-vers-cologny",} Таким образом, вы уверены, что значения не возвращаются пустыми из вашего API, правда?
Если это ответ на запрос, значения заполняются. Как вы определяете, что они пусты? Похоже, что вы ничего не делаете с переменной
detail, поэтому, если вы ожидаете изменения в DOM, это может быть причиной.