Всего 123 791 комментарий

Сергей
19 июля 2023, 14:04
0
[[pdoSitemap?
&tpl=`sitemap_tpl`
&parents=`7`
&tplWrapper=`@INLINE [[+output]]`
]] вывести у кого родитель id = 7
Роман
19 июля 2023, 11:35
0
Да, 7 потомок 2, так не вариант, выводи да норм, но не выводит САМ РОДИТЕЛЬ. только детей, и исключает норм
Роман
19 июля 2023, 11:34
0
не вариант, таких контейнеров много с вложенными контейнерами и детьми которые нужны, проще свой снипет написать
Артур Шевченко
19 июля 2023, 11:32
0
Коли структура дрянь — руками пиши какие ресурсы выводить.
Роман
19 июля 2023, 11:30
0
не получается, структура такая, нужно вывести вложенного родителя и потомков с id 7

РОДИТЕЛЬ НЕ НУЖЕН — 2
— ребенок не нужен
— ребенок не нужен
— РОДИТЕЛЬ НУЖЕН — 7
— ребенок нужен
— ребенок нужен
Артур Шевченко
19 июля 2023, 11:24
0
Когда ты указываешь
&resources=`7`
&parents=`7`
В запросе будет что-то типа «parent IN (7) AND id IN (7)». Соответственно если тебе нужно вывести 7 ресурс и его потомков указывай в parents родителя ресурса 7, а в resources тех соседей ресурса 7, которых не нужно выводить со знаком минус.
Роман
19 июля 2023, 11:05
0
это понятно, а как вывести потомков тоже?
Дмитрий Кондаков
19 июля 2023, 11:04
0
Если указывается &resources=`7` то выведется в любом случае только ресурс с id 7
Роман
19 июля 2023, 09:52
0
Так не сработает, так выведет только ресурс с id 7, а мне нужны еще и его потомки.
Дмитрий Кондаков
19 июля 2023, 09:38
0
parents — это родитель, у ресурса 7 родитель не может быть 7. Уберите &parents=`7` и все заработает
Александр Мельник
18 июля 2023, 22:40
+1
Не знаю почему у вас работает. Я отрыл в документации (и даже по той ссылке что вы дали на mdn это тоже написано), что включение mode no-cors позволяет использовать только простые запросы.
Кстати до сегоднешнего дня не знал, что запросы делятся на простые и сложные. Но как оказалось, если запрос содержит content-type — aplication/json он уже считается сложным.
Простой запрос – это запрос, удовлетворяющий следующим условиям:

Простой метод: GET, POST или HEAD
Простые заголовки – разрешены только:
Accept,
Accept-Language,
Content-Language,
Content-Type со значением application/x-www-form-urlencoded, multipart/form-data или text/plain.

Любой другой запрос считается «непростым». Например, запрос с методом PUT или с HTTP-заголовком API-Key не соответствует условиям.
If mimeType’s essence is not «application/x-www-form-urlencoded», «multipart/form-data», or «text/plain», then return false.

Поэтому насколько я понял, fetch принудительно меняет заголовок на text, если я указал mode no-cors.
Хотя у вас работает.
Я тоже грешил на сервер, потому что это мной построенные на docker целый кластер из контейнеров, с двойным проксирование запросов и напартачить там можно было во многих местах. Но запросы с postamn, curl — проходили правильно, с корректным content-type.
Пришлось более глубоко вникнуть в работу cors. Убрал из fetch no-cors и реализовал у себя в приложении обработку предзапроса по методу options. Полнейшее для меня открытие, но оказалось что как только мы хотим сделать «сложный» запрос на «не свой домен», перед основным запросом браузер отсылает предварительный запрос на тот же url но только методом options и просит разрешения на основной запрос.
Как только я организовал у себя обработку этих предзапросов и возврат корректных (по документации заголовков), у меня все заработало.

Прекрасно, что удалось открыть что то новое для себя и спасибо за подсказки.
Баха Волков
18 июля 2023, 22:01
+1
Возможно у тебя какой-то прикол в настройках сервера.

// index.js

const btn = document.querySelector('#send')

btn.addEventListener('click', async () => {
  const user = {
    phone: '+0000000000',
    password: '76c4a096d14',
  }

  const response = await fetch('/test.php', {
    method: 'POST',
    mode: 'no-cors',
    headers: {
      'Content-Type': 'application/json;charset=utf-8',
    },
    body: JSON.stringify(user),
  })

  const result = await response.json()
  console.log(result)
})

// test.php

<?php

echo json_encode([
  'CONTENT_TYPE' => $_SERVER['CONTENT_TYPE'],
  'Content-Type' => getallheaders()['Content-Type']
]);

// Ответ сервера

{"CONTENT_TYPE":"application/json","Content-Type":"application/json"}
Артур Шевченко
18 июля 2023, 18:24
+1
Можешь вообще эту оцию не использовать, она, по-моему, бесполезная. CORS запрос сделать не поможет, а для чего ещё её можно использовать непонятно.
Александр Мельник
18 июля 2023, 17:46
0
я понял, это наверное изза
mode: 'no-cors',
Николай Савин
18 июля 2023, 17:31
+2
А ну может. Не помню уже, редко пользуюсь этим полем.
Да вообще мысль хорошая. Нам не помешал бы конструктор полей по которым нужно искать.
Дмитрий
18 июля 2023, 17:29
0
Не, Пользователь это из раздела Пользователи, по нему ищет поиск стандартно. А нужно искать по полю reciever, это с вкладки Адрес в заказе, поле Получатель.
Николай Савин
18 июля 2023, 17:20
0
Дык есть же поле Заказчик. Это и есть receiver