2016-09-21 25 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/ 請求對象和函數區域

相關問題