2016-09-21 3 views
0

私はそれに2つの<script>ブロック、ローカルで実行している1、1はExactTargetサーバー上で実行しているページ持っている: "にrunat =サーバーのブロックを返すの「結果」を呼び出す瞬間text/javascriptブロックのJSON配列をexacttarget/salesforce marketing cloudの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> 

を、 null値です。 '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/ リクエストオブジェクトと機能エリア

関連する問題