Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

kairos

Users
  
  • Posts

    53
  • Joined

  • Last visited

1 Follower

Information

  • Gender
    Мужчина
  • City:
    Полтава
  • Interests
    Opencart, xml выгрузки

Recent Profile Visitors

2,265 profile views

kairos's Achievements

Enthusiast

Enthusiast (6/14)

  • First Post
  • Collaborator
  • Reacting Well Rare
  • Conversation Starter
  • Week One Done

Recent Badges

6

Reputation

  1. Во общем да, оказалось что дело в настройках хостинга, я попробовал получить данные из другого сервера и все работает нормально. На проблемном хостинге помог файл: .htaccess со следующим содержимым: <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> <IfModule mod_headers.c> Header always set Access-Control-Allow-Origin "https://b.com" Header always set Access-Control-Allow-Methods "GET,POST,PATCH,PUT,DELETE,OPTIONS" Header always set Access-Control-Allow-Headers "*" Header always set Access-Control-Allow-Credentials "*" Header set Access-Control-Allow-Credentials true </IfModule> </IfModule> При этом аналогичные запросы из php файла пришлось убрать, итоговый код: PHP: <?php header('content-type: application/json'); echo '{"foo":"bar"}'; file_put_contents(__DIR__ . '/test_GET_data.txt', var_export($_GET, true)); file_put_contents(__DIR__ . '/test_POST_data.txt', var_export($_POST, true)); ?> JS: $(document).ready(function(){ $.ajax({ url: "https://b.com/", crossDomain: true, success: function( response ) { console.log(response); } }); });
  2. В общем следующий код на локальной машине отдает данные нормально: $(document).ready(function(){ $.ajax({ url: "http://b.com", crossDomain: true, success: function( response ) { console.log(response); } }); }); <?php header('content-type: application/json'); header('Access-Control-Allow-Origin: http://a.com'); echo '{"foo":"bar"}'; ?> То есть на локалке достаточно было убрать: dataType: "jsonp", однако на виртуальном хостинге этот код не работает, видимо блокировка идет где то на уровне настроек хостинга, интересно можно ли это решить средствами php или скажем путем добавления файла: .htaccess или тут без обращения в саппорт хостинга не обойтись?
  3. Приветствую форумчане. Такая проблема, пытаюсь выполнить ajax запрос, суть которого отправить некоторые данные с домена: a.com на b.com и соответственно получить ответ от b.com с целью дальнейшей его обработки в скрипте на a.com Оба домена находятся на OpenServer на локальной машине, то есть у меня есть контроль над http://b.com/ и я могу прописать в php файле необходимые настройки. Однако при попытке выполнить ajax запрос получаю ошибку: jquery-3.6.0.min.js:2 Cross-Origin Read Blocking (CORB) blocked cross-origin response http://b.com/?callback=jQuery360001053556176974424_1630579545897&_=1630579545898 with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details. Аналогичную ситуацию имею на хостинге уже на реальных доменах. При этом данные c a.com на b.com в php скрипт все же попадают, однако, мне не удается добиться чтения ответа на домене a.com. Что характерно в сети есть по меньшей мере один домен с которого таки удается получить данные таким способом. Если вместо b.com подставить страницу: https://jsonplaceholder.typicode.com/todos/1 то в этом случае получаю ответ: {userId: 1, id: 1, title: "delectus aut autem", completed: false} Однако же добиться аналогичного эффекта на домене под собственным контролем я не могу. Пробовал в js указывать crossDomain: true, на стороне php пробовал указывать различные заголовки по типу: header('content-type: application/json'); и тому подобное... пробовал даже скопировать из браузера заголовки которые отдает сайт https://jsonplaceholder.typicode.com/todos/1 и подставить их в php файл через тот же header() однако ничего не выходит. Подскажите куда копать? Вопрос вроде плевый, но сколько не пытаюсь ничего не получается. Ниже код js: <script> //Первый вариант на jQuery: $(document).ready(function(){ $.ajax({ url: "http://b.com", crossDomain: true, dataType: "jsonp", success: function( response ) { console.log(response); } }); }); </script> <script> //Второй вариант на чистом js: function receiver(data){ console.log(data); } </script> <script src="http://b.com/?callback=receiver"></script> код php: <?php header('content-type: application/json'); header('Access-Control-Allow-Origin: http://a.com'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); echo '{"foo":"bar"}'; ?>
  4. В общем получается что для такого кода: document.addEventListener('DOMContentLoaded', function() { console.log('test DOMContentLoaded!!!'); document.qerySelector('#section-slideshow > .Slideshow > .Slideshow__Carousel > button.next').addEventListener('click', function (e) { console.log('test click!!!'); console.log(e); }); }); Первое сообщение: "test DOMContentLoaded!!!" - выводится, а при клике не кнопку второе: "test click!!!" - уже нет. Ну то есть событие клика этот код не отслеживает. Но повторюсь мне нужно не отследить событие клика, а именно вызвать его. Задача усложняется тем что эти кнопки: <button class="flickity-prev-next-button-222 previous" type="button" aria-label="previous"><svg viewBox="0 0 100 100"><path d="M 10,50 L 60,100 L 70,90 L 30,50 L 70,10 L 60,0 Z" class="arrow"></path></svg></button> они как бы создаются слайдером, возможно поэтому я не могу вызвать событие клика по ним к примеру тем же методом trigger для jQuery.
  5. Странно, выдает ошибку: (index):1080 Uncaught TypeError: Cannot read property 'addEventListener' of null at (index):1080 (index):1067 Uncaught TypeError: document.qerySelector is not a function at HTMLDocument.<anonymous> ((index):1067) Кроме того как я понимаю это код чтобы отследить событие клика? А мне нужно его вызвать, то есть с имитировать событие как будто пользователь кликнул на кнопку.
  6. Вопрос к знатокам JS. Пытаюсь вызвать событие клика на кнопку. Однако событие не происходит. Решил проверить правильно ли отобрал кнопку на странице для дальнейшей работы с ней В итоге вот такой код: var previousButton = document.querySelector('button.previous'); console.log(previousButton); Выдает в консоль буквально следующее: <button class="flickity-prev-next-button-222 previous" type="button" aria-label="previous"><svg viewBox="0 0 100 100"><path d="M 10,50 L 60,100 L 70,90 L 30,50 L 70,10 L 60,0 Z" class="arrow"></path></svg></button> И я вот тут что-то запутался. Он мне что вернул? Объект или строку с кодом? Если объект то подходит ли он для вызова события клика на него? При этом в документации указанно что метод document.querySelector() - возвращает ссылку на объект типа Element линк: https://developer.mozilla.org/ru/docs/Web/API/Document/querySelector Но почему тогда я вижу в консоли строку с исходным кодом?
  7. Здравствуйте. Я делал данную доработку для Scrin, API там как такового нет, данные парсяться с сайта европочты по крону раз в сутки, после этого на странице оформления заказа готовые данные подтягиваются уже из сайта заказчика. К симпле подключились небольшой модификацией в tpl файлах модуля. Если нужно могу вам сделать аналогичную реализацию. Пишите в ЛС.
  8. Приветствую. Если не найдете исполнителя который возьмется за задачу "целиком" то обращайтесь, могу выполнить интеграцию с внешними сервисами, а также почти все пункты за исключением разве что дизайна. А так советовал бы вам разбить ТЗ на отдельные логические части и искать исполнителя отдельно по каждой из них - быстрее найдете. Ведь тот кто хорошо может сделать дизайн не факт что разбирается в системном администрировании и наоборот.
  9. А точно, не сообразил)) Как говорит один мой друг: "Перекуп на перекупе сидит и перекупом погоняет".
  10. Спасибо. Как всегда очень поучительные кейсы. По второму кейсу интересно как "хайлоад" фирма не заметила что фиды выжирают память? Или их geo API сбил с толку?
  11. Да в 3-йке проблема осталась. Огромное спасибо за решение.
  12. Возможно вы правы, однако задача не состоит в том чтобы запретить поисковику обход страниц, а именно в том чтобы дублирующие страницы не появились в поиске, чтобы они не мешали продвижению основных страниц. Ноуиндекс здесь не совсем подходит так как на сколько я знаю работает он только лишь для Яндекса. Ну и кроме того решение о том каким именно образом закрывать страницы не всегда принимает разработчик, как правило есть заказчик, которому задачи могут ставить seo-шники.
  13. Забавно изначально стоит OCFilter но он как раз эту задачу и не решает, ну тесть не дает никакого признака по которому можно было бы закрыть страницу от индексации. или возможно я не нашел в настройках, но смотрел внимательно. Пока остановил свой выбор на: Там прямо в демке видно что есть признак в url для всех страниц фильтра.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.