[英]SSJS Platform.Response.Redirect throws error in Try Catch Statement
我懷疑 .NET 的 threadabortexception 問題,但我無法使用可能的選項修復它。
簡而言之,Redirect 函數拋出錯誤並進入 catch,無論設置第二個參數為 true 還是 false)。
下面的代碼只是一個例子(但我之前在實時項目中遇到過幾次)。
...
try {
var TSD = TriggeredSend.Init("DE_Name");
var Status = TSD.Send(data.subscriber, data.attributes);
if (Status != "OK") {
Platform.Response.Redirect(Variable.GetValue("@error_page"));
} else {
Platform.Response.Redirect(Variable.GetValue("@thanks_page")); //<<<-- This redirect throw error
}
} catch (err) {
Platform.Response.Redirect(Variable.GetValue("@error_page")); // <---- here it comes
}
...
歡迎任何解決方法。
我知道這是一個較舊的問題,但我認為分享調查結果會很好。
我沒有合乎邏輯的解釋為什么會發生這種情況,但重定向總是拋出錯誤,如果在 try 塊中使用它,則將執行 catch 部分。
這是一個簡單的解決方法:
...
try {
var TSD = TriggeredSend.Init("DE_Name");
var Status = TSD.Send(data.subscriber, data.attributes);
try {
if (Status != "OK") {
Platform.Response.Redirect(Variable.GetValue("@error_page"));
} else {
Platform.Response.Redirect(Variable.GetValue("@thanks_page")); //<<<-- This redirect throw error
}
} catch(e) {}
} catch (err) {
Platform.Response.Redirect(Variable.GetValue("@error_page")); // <---- here it comes
}
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.