Как получить html через пост запрос на плагин?
Хочу получить html шаблона по клику допустим, сделал плагин поставил обработчик OnHandleRequest
Проверяю на пост и так далее, есть так же метод получения контента из шаблона, но как вернуть его? return не работает, echo и die() тоже, либо ошибка либо какой-то бред.
Контент получаю так
Возвращаю ответ от функции выше так
Проверяю на пост и так далее, есть так же метод получения контента из шаблона, но как вернуть его? return не работает, echo и die() тоже, либо ошибка либо какой-то бред.
Контент получаю так
$retrivedObject->getContent();
— Контент правильный проверял.Возвращаю ответ от функции выше так
return json_encode(array('status' => true, 'msg' => "Succesfuly retrieved data from '{$objectName}' with search params as '{$searchParams}'", 'result' => $result), JSON_UNESCAPED_UNICODE);
Где $result это просто список. Комментарии: 8
Джсом отправляю так
function makeAjaxCall(requestMethod, requestPath, requestBody) {
var request = new XMLHttpRequest();
request.open(requestMethod, requestPath);
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
request.setRequestHeader("X-Request-Type", "rapidLayout");
request.send(requestBody);
request.onload = function() {
if (request.readyState == 4) {
//the operation is done
if (request.status == 200) {
log(request)
result = JSON.parse(request.responseText);
log(result);
return result;
} else if (request.status >= 400) {
//client or server errors
errCode = `Error Code: ${request.status}; Error Msg: ${request.statusText}`;
log(errCode)
alert(errCode);
}
}
}
}
Возможно не OnHandleRequest нужен.
Подскажите какой
Просто в документации написано:
Output
Все, что возвращается этим событием, будет записано в журналы как ошибка.
Поэтому ничего не выводится.
Скорее всего, что-то из этих, сложно сказать, не видя полной картины
Output
Все, что возвращается этим событием, будет записано в журналы как ошибка.
Поэтому ничего не выводится.
Скорее всего, что-то из этих, сложно сказать, не видя полной картины
OnMODXInit
OnLoadWebDocument
OnPageNotFound
Но ведь это странно и глупо, за счёт того что плагин по обработчику «OnHandleRequest» должен именно это и выполнять, мол человек сделал запрос, и допустим вывести вместо страницы то что в плагине, кокрас таки те обработчики что вы выше написали вообще не подходят.
Суть простая я хочу отправить аякс запрос с XMLHttpRequest допустим, и получить ответ от плагина, в плагине моём всё работает если выводить в лог, но вернуть как ответ не получается
Суть простая я хочу отправить аякс запрос с XMLHttpRequest допустим, и получить ответ от плагина, в плагине моём всё работает если выводить в лог, но вернуть как ответ не получается
Ну глупо и глупо. Вам виднее.
<?php
define('MODX_API_MODE', true);
require_once dirname(dirname(__FILE__)) . '/index.php';
$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
// Откликаться будет ТОЛЬКО на ajax запросы
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
return;
}
// Сниппет будет обрабатывать не один вид запросов, поэтому работать будем по запрашиваемому действию
// Если в массиве POST нет действия - выход
if (empty($_POST['action'])) {
return;
}
// А если есть - работаем
$res = '';
$action = $_POST['action'];
switch ($action) {
case 'getCOntent':
if((int)$_POST['rid']){
// тут получаешь код шаблона
}
break;
}
// Если у нас есть, что отдать на запрос - отдаем и прерываем работу парсера MODX
if (!empty($res)) {
die($res);
}
Насколько я понял вам нужно не return делать, а echo json; die;
echo json_encode(array('status' => true, 'msg' => "Succesfuly retrieved data from '{$objectName}' with search params as '{$searchParams}'", 'result' => $result), JSON_UNESCAPED_UNICODE);
die;
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.