Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.05.2020, 09:34
Аспирант
Отправить личное сообщение для oslayer Посмотреть профиль Найти все сообщения от oslayer
 
Регистрация: 18.10.2012
Сообщений: 63

Про wordpress всё понятно. тут дело в другом. этот сайт (travelshift) формируется динамически уже в браузере с помощью js.

т.е. вот эти данные, если вы посмотрите их внимательно служат как раз для формирования динамической страницы на стороне клиента с помощью js.(подозреваю что используется vue)

Мне нужно подпихнуть эти данные (они же отдаются в браузер, если ввести строку) в скрипт js который эти данные запрашивает.

что то типа локального подключения json файла. т.е. прямого указания - прочитать все данные из json файла, а возьму я эти данные не из базы wordpress, а введя ссылку в адресной строке и скопировав их в json

Последний раз редактировалось oslayer, 14.05.2020 в 09:38.
Ответить с цитированием
  #12 (permalink)  
Старый 14.05.2020, 09:37
Аспирант
Отправить личное сообщение для oslayer Посмотреть профиль Найти все сообщения от oslayer
 
Регистрация: 18.10.2012
Сообщений: 63

Сообщение от laimas Посмотреть сообщение
Сеть, сделайте запрос по этой ссылке. В нем вы увидите, что клиентский скрипт делает асинхронный запрос к серверу, а ответом его будет json. Забота клиента получив эти данные "расфасовать" их куда следует.
Вот мне и нужно расфасовать эти данные, но без запроса к бд wordpress, просто скопировав готовый ответ
Ответить с цитированием
  #13 (permalink)  
Старый 14.05.2020, 09:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вам что нужно именно эти данные? Ну так заберите их и поместите у себя на сайте как файл, затем запрашивайте их (для его получения и скриптов то не надо будет, хватит и Apach), декодируйте и делайте с ними чего хотите.
Ответить с цитированием
  #14 (permalink)  
Старый 14.05.2020, 09:48
Аспирант
Отправить личное сообщение для oslayer Посмотреть профиль Найти все сообщения от oslayer
 
Регистрация: 18.10.2012
Сообщений: 63

Да именно, эти данные. которые нужно подпихнуть этому скрипту.

Так вот и проблема в том что не знаю как и где это сделать... ума не хватает

Смог найти и понять что вот этот скрипт
https://travelshift.com/wp-content/t...eeb227e4057.js
получает все необходимые данные

Понимаю что в нём нужно заменить запросы к api , на запросы к готовым файлам.

?action=base - только в одном месте в этом файле.

Но как это сделать - не знаю. Там слишком сложная для меня структура

Последний раз редактировалось oslayer, 14.05.2020 в 09:51.
Ответить с цитированием
  #15 (permalink)  
Старый 14.05.2020, 09:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Я не понимаю чего надо. Что из этих данных должно получится на клиенте мне не ведомо. Кому что "подпихнуть" я не в курсе, могу только сказать, что это должен быть клиентский сценарий, который точно знает структуру данных, ожидает именно их.

А сами данные, коли они нужны, после запроса по ссылке сохраните как имя_файла.json у себя на сервере, если этого будет достаточно.
Ответить с цитированием
  #16 (permalink)  
Старый 14.05.2020, 09:55
Аспирант
Отправить личное сообщение для oslayer Посмотреть профиль Найти все сообщения от oslayer
 
Регистрация: 18.10.2012
Сообщений: 63

Сообщение от laimas Посмотреть сообщение
Я не понимаю чего надо. Что из этих данных должно получится на клиенте мне не ведомо. Кому что "подпихнуть" я не в курсе, могу только сказать, что это должен быть клиентский сценарий, который точно знает структуру данных, ожидает именно их.
fetchCombinedBase: (E = Object(o.a)(regeneratorRuntime.mark((function t(e) {
                        var r, n, o, c, l, d, h;
                        return regeneratorRuntime.wrap((function (t) {
                            for (;;) switch (t.prev = t.next) {
                                case 0:
                                    return r = e.commit, n = e.rootState, o = "".concat(T, "?action=base"), t.next = 4, f.a.get(o, {
                                        responseType: "json"
                                    });
                                case 4:
                                    c = t.sent, l = c.data, d = [], h = n.ui.bp.mobilePortrait ? 512 : 1024, Object.keys(l).forEach((function (t) {
                                        var e = l[t];
                                        "config" == t ? r("i18n/setContent", {
                                            en: e
                                        }, {
                                            root: !0
                                        }) : "pages" == t || "extrapages" == t ? d = d.concat(e) : "blogposts" == t ? r("setBlogPosts", {
                                            posts: e
                                        }) : "trips" == t ? r("setTrips", {
                                            trips: e,
                                            imageQuality: h
                                        }) : "partners" == t ? r("setPartners", {
                                            partners: e
                                        }) : "social_feed" == t && r("setSocialFeed", {
                                            feed: e
                                        })
                                    })), r("setPages", {
                                        pages: d
                                    });


Вот этот кусок кода, который по моему мнению получает данные. Если это так, то здесь нужно заменить на получение из файла. Как это сделать я не знаю.
Ответить с цитированием
  #17 (permalink)  
Старый 14.05.2020, 10:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Здесь ?action=base, это GET параметры запроса с ключом action и значением base. Запрос будет производится по указанному пути, если судить по примеру, то .../api/ и если нет перенаправления, то в каталоге должен быть индексный файл, который и будет обрабатывать этот запрос - ключ и его значение. В CMS же все сложнее. В данном скрипте адрес запроса формируется тут - o = "".concat(T, "?action=base"). Вы можете вместо этого переменной "o" указать любой свой путь (относительный или полный) просто к файлу хранящему эти данные.
Ответить с цитированием
  #18 (permalink)  
Старый 14.05.2020, 10:16
Аспирант
Отправить личное сообщение для oslayer Посмотреть профиль Найти все сообщения от oslayer
 
Регистрация: 18.10.2012
Сообщений: 63

Сообщение от laimas Посмотреть сообщение
Здесь ?action=base, это GET параметры запроса с ключом action и значением base. Запрос будет производится по указанному пути, если судить по примеру, то .../api/ и если нет перенаправления, то в каталоге должен быть индексный файл, который и будет обрабатывать этот запрос - ключ и его значение. В CMS же все сложнее. В данном скрипте адрес запроса формируется тут - o = "".concat(T, "?action=base"). Вы можете вместо этого переменной "o" указать любой свой путь (относительный или полный) просто к файлу хранящему эти данные.
Что то типа
o = "".concat(T, "/mydata.json")
так?
Ответить с цитированием
  #19 (permalink)  
Старый 14.05.2020, 10:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Метод concat() объединяет текст из двух или более строк и возвращает строку из этих строк. То есть, если переменная T содержит путь к реальному каталогу на вашем сайте, то да, нужно только в этом каталоге сохранить эти данные под указанным именем.
Ответить с цитированием
  #20 (permalink)  
Старый 14.05.2020, 10:32
Аспирант
Отправить личное сообщение для oslayer Посмотреть профиль Найти все сообщения от oslayer
 
Регистрация: 18.10.2012
Сообщений: 63

буду пробовать
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
простой сервер типа запрос ответ barbaek Node.JS 3 10.11.2019 09:31
Почему не приходит ответ на запрос izumov AJAX и COMET 0 21.05.2019 21:05
Какой ответ на AJAX запрос лучше возвращать? underW AJAX и COMET 3 24.02.2015 18:38
Отправить запрос и получить ответ timedo Общие вопросы Javascript 1 22.05.2013 18:59
Yandex market API запрос HTTP djonA Общие вопросы Javascript 1 02.05.2013 15:11