2016-09-21 26 views
0

我有一个页面上有两个<script>块,一个本地运行时,ExactTarget服务器上的一个运行:如何将text/javascript块中的JSON数组传递给exacttarget/salesforce营销云中的runat = server块?

<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> 

目前,呼叫“的结果”中的“RUNAT =服务器”块回报一个空值。如何访问'runat = server'块中的'results'数组?

回答

0

你不能。由于服务器端Java脚本在服务器上运行:),它在客户端计算机上执行的JavaScript之前执行,所以当您在SSJS块中访问它时,var'results'不存在。 据我所知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/ 请求对象和函数区域

相关问题