|
02.04.2020, 03:40 | #1 |
Участник
|
В общем-то, все получилось. Вам нужно закодировать ваш json в base64 строку с помощью atob/btoa и отправить это дело в запросе. Только не забудьте его опубликовать)
Я использую вот эту библиотеку: https://github.com/hso-nn/crm-sdk/bl...#7-webresource Она также паблишит все без вас. В итоге код выглядит очень просто: import {Webresource} from "crm-sdk"; //кодируем в формат base64 let formattedConfig = btoa(JSON.stringify(config)); //применяем изменения в файл (абстракция) let webresource = Webresource.get(null, { name: <имя вебресурса>, select: ["name", "webresourcetype"] }).then(function (webresource) { webresource.content = formattedConfig; webresource.save().then(function () { console.log('Saved config file'); }); }); Почти то же самое можно сделать и без библиотек, только потребуется дополнительное действие для публикации. Также при возникновении каких-либо ошибок при форматировании (например, если у вас в объекте будут спецсимволы или кириллица, хотя она у меня работает нормально), используйте эти рекомендации: https://itchief.ru/lessons/javascrip...-btoa-and-atob. Также тут есть разъяснения по работе atob/btoa. Для старых браузеров можно использовать: new Buffer.from('string').toString('base64') или Buffer.from('string').toString('base64') P.S. Если Вам нужно, чтобы в конструкторе json был читаемым, используйте Json.stringify вот так: let pretty = JSON.stringify(obj, null, 2); Последний раз редактировалось flav; 02.04.2020 в 03:50. |
|
Теги |
dynamics 365, webresource, конфигурация |
|
|