0

我有一个页面,上面有两个<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>

目前,在“runat=server”块中调用“results”会返回一个空值。如何访问“runat=server”块中的“results”数组?

4

1 回答 1

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/ 请求对象和功能

于 2016-11-04T10:23:12.120 回答