неправильно делаю. Есть сайт, там сделал модалку с селектом для выбора региона, после выбора региона должно человека перекидывать на нужный домен в той зоне, что он выбрал. Сделал отдельный файл - ajax.php, в нем указал
$modx->sendRedirect
но при ответе от сервера, не переходит никуда, даже на внутренние страницы
Вызов:
async function getData() {
let region = document.getElementById('select-region');
var response = await fetch('api/index.php', {
method: 'POST',
mode: 'no-cors',
body: JSON.stringify({
'action':'redirect',
'redirectRegion': region.value
})
})
}
Сам файл:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
// Подключаем
define('MODX_API_MODE', true);
require $_SERVER['DOCUMENT_ROOT'].'/index.php';
$data = json_decode(file_get_contents('php://input'));
if (!isset($data->action) || $data->action == "") {
$message = array("result"=>"fail","message"=>'Не задан action');
die(json_encode($message));
}
switch ($data->action) {
case "redirect":
$url = $modx->makeUrl(9);
$modx->sendRedirect($url,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
break;
}
?>
А просто ссылку сделать нельзя?
наверное к файлу ajax.php иедт AJax ? значит редирект нужно делать не в файле аякса а в скрипте JS.
А как ты обращаешься к этому ajax.php ? через ajax? Тогда он и не будет редиректить. В таком случае тебе нужно возвращать в JS какие-то данные и потом уже самим JS редиректить туда, куда надо. Либо без AJAX обрабатывать запрос
да, сделал херню, уже понял))
Обсуждают сегодня