Как передать массив JSON из блока text/javascript в блок runat=server в облаке маркетинговой рекламы точной цели /salesforce?
У меня есть страница с двумя <script>
блоки на нем, один работает локально, другой работает на сервере ExactTarget:
<script type="text/javascript">
var results = localStorage.getItem('results');
var results = JSON.parse(results);
</script>
<script runat=server>
Platform.Load("Core","1");
Write(Stringify(results)); //this returns a 'null' value
var campaignsupdate = DataExtension.Init("0DB9904F-CE05-45E7-8052- 7C6935B4B012");
for(var i=0; i < results.length; i++) {
var rowid = results[i]["ROWID"];
var title = results[i]["title"];
campaignsupdate.Rows.Update({title: title},["ROWID"], [rowid]);
}
</script>
На данный момент вызов 'results' в блоке 'runat=server' возвращает нулевое значение. Как получить доступ к массиву результатов в блоке runat = server?
1 ответ
Ты не можешь Поскольку серверный Java Script выполняется на сервере:), он выполняется до javascript, который выполняется на клиентском компьютере, поэтому var 'results' не существует, когда вы обращаетесь к нему в блоке SSJS. Насколько я знаю, SSJS не может общаться с javascript, поэтому вы не можете использовать библиотеки javascript или код, написанный в блоке javascript. В качестве альтернативы вы можете передать значение в запросе GET/POST и получить его в SSJS. Взгляните на: http://help.marketingcloud.com/en/documentation/exacttarget/content/server_side_javascript/server_side_javascript_syntax_guide/core_library_server_side_javascript_functions/utilities_server_side_javascript_functions/Запрос области функций