Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
ScriptExecutionFailed
Hata kodu
steps.javascript.ScriptExecutionFailed
Hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of javascript_policy_name failed with error: error_type: error_description. (javascript_source_file_name)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Hata türleri ve olası nedenleri
JavaScript politikası, birçok farklı türde ScriptExecutionFailed hatası verebilir. Daha sık görülen hatalardan bazıları aşağıdaki tabloda listelenmiştir:
| Hata Türü | Neden |
| Aralık Hatası | Yasal değerler aralığının dışında bir sayı kullanırsanız RangeError hatası verilir. |
| Referans Hatası | Bildirilmemiş bir değişkeni kullanırsanız (referans verirseniz) ReferenceError hatası verilir. |
| Söz dizimi hatası | Söz dizimi hatası olan kodu değerlendirmeye çalışırsanız SyntaxError (Söz Dizimi Hatası) oluşturulur. |
| Tür Hatası (Type Error) | Beklenen türler aralığının dışında bir işlem kullanırsanız TypeError hatası verilir. |
| URI Hatası | Bir URI işlevinde geçersiz karakterler kullanırsanız URIError hatası verilir. |
Aralık hatası
İzin verilen değerler kümesinde veya aralığında olmayan bir değerle işlem yaptığınızda ya da bir işleve değer ilettiğinizde RangeError hata türü oluşturulur.
Örneğin, bu hata aşağıdaki durumlarda gösterilir:
- Bazı Tarih API'lerinde 31 Eylül 2018 gibi geçersiz bir tarih kullanıyorsanız.
Number.toPrecision(),Number.tofixed()veyaNumber.toExponential()gibi sayısal yöntemlere geçersiz bir değer iletirseniz. Örneğin,Number.toPrecision()yönteminde 400 veya 500 gibi büyük bir değer ilettiğinizi varsayalım. Bu durumda bir aralık hatası görürsünüz.- Geçersiz uzunlukta bir dizi oluşturursanız.
Hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of javascript_policy_name failed with error: Javascript runtime error: \"RangeError: error_description. (javascript_source_file_name:line_number)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Not: Aralık hatalarının teşhisi ve çözümü, JavaScript politikası tarafından verilen tam hata mesajına bağlıdır. Aşağıda, referans olarak kullanabileceğiniz birkaç örnek açıklanmıştır.
1. örnek: Geçersiz tarih
Örnek hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of ParseDate failed with error: Javascript runtime error: \"RangeError: Date is invalid. (ParseDate.js:2)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Teşhis
JavaScript politikasını, kaynak dosyasını, hatanın oluştuğu satır numarasını ve hata açıklamasını belirleyin. Tüm bu bilgileri hata yanıtının
faultstringöğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstringiçinde JavaScript politika adıParseDate, JavaScript kaynak dosyasıParseDate.js, hatanın oluştuğu satır numarası2ve hata açıklamasıDate is invalid'dir:"faultstring": "Execution of ParseDate failed with error: Javascript runtime error: \"RangeError: Date is invalid. (ParseDate.js:2)\""JavaScript kaynak dosyasını (yukarıdaki 1. adımda belirtilen) inceleyin ve hatada belirtilen satır numarasında geçersiz bir tarih kullanılıp kullanılmadığını veya satır numarasında kullanılan değişkende geçersiz bir tarih olup olmadığını kontrol edin. Geçersiz bir tarih kullanılıyorsa hatanın nedeni budur.
Bu hataya neden olan örnek bir JavaScript kaynak dosyasını aşağıda görebilirsiniz:
ParseDate.js
var date = new Date('2018-09-31T11:19:08.402Z'); date.toISOString();Bu örnekte, satır numarasında 2 kullanılan bir değişken
datevardır. Kaynak dosyayı incelediğinizdedatedeğişkeninin geçersiz bir tarihle ayarlandığını görebilirsiniz:2018-09-31T11:19:08.402Z.Bu tarih, Eylül ayında 31 gün olmadığı için geçersizdir.Not: Bu örnekte kullanılan ISO-8601 biçimi:
YYYY-MM-DDTHH:mm:ss.sssZ
Çözünürlük
JavaScript kodunda Tarih API'lerini kullanırken her zaman geçerli bir tarih kullandığınızdan emin olun.
Yukarıda gösterilen örnek JavaScript kodunu düzeltmek için tarihi aşağıdaki gibi Sept 30 2018 olarak ayarlayabilirsiniz:
var date = new Date('2018-09-30T11:19:08.402Z');
date.toISOString();
2. örnek: Precision API'lerine geçersiz sayı iletildi
Örnek hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of SetNumberPrecision failed with error: Javascript runtime error: "RangeError: Precision 400 out of range. (SetNumberPrecision.js:2)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Teşhis
JavaScript politikasını, kaynak dosyasını, hatanın oluştuğu satır numarasını ve hata açıklamasını belirleyin. Tüm bu bilgileri hata yanıtının
faultstringöğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstringiçinde JavaScript politika adıSetNumberPrecision, JavaScript kaynak dosyasıSetNumberPrecision.js, hatanın oluştuğu satır numarası 2 ve hata açıklamasıPrecision 400 out of range.'dır."faultstring": "Execution of SetNumberPrecision failed with error: Javascript runtime error: "RangeError: Precision 400 out of range. (SetNumberPrecision.js:2)\""JavaScript kaynak dosyasını (yukarıdaki 1. adımda belirtilen) inceleyin. Hata açıklamasında belirtilen büyük sayı, söz konusu satır numarasında kullanılıyorsa hatanın nedeni budur.
Bu hataya neden olan örnek bir JavaScript kaynak dosyasını aşağıda görebilirsiniz:
SetNumberPrecision.js
var number = 12.3456; var rounded_number = number.toPrecision(400); print("rounded_number = " + rounded_number);Bu örnekte, 2. satırda 400 gibi büyük bir değerin kullanıldığına dikkat edin. Hassasiyeti bu kadar çok basamaklı bir sayıya ayarlayamadığınız için aşağıdaki hatayı alırsınız:
"faultstring": "Execution of SetNumberPrecision failed with error: Javascript runtime error: "RangeError: Precision 400 out of range. (SetNumberPrecision.js:2)\""
Çözünürlük
toPrecision() yönteminde kullanılan sayının, izin verilen değerler kümesi içinde olduğundan emin olun.
Yukarıda açıklanan örnek JavaScript ile ilgili sorunu düzeltmek için anlamlı basamak sayısını geçerli olan 2 olarak ayarlayın:
var number = 12.3456;
var rounded_number = number.toPrecision(2);
print("rounded_number = " + rounded_number);
Referans hatası
JavaScript'inizde tanımlanmamış bir değişken kullanıldığında (referans verildiğinde) veya üzerinde işlem yapıldığında ReferenceError hata türü oluşturulur.
Hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of javascript_policy_name failed with error: Javascript runtime error: \"ReferenceError: variable_name is not defined. (javascript_source_file_name:line_number)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Örnek hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of ComputeTotalPrice failed with error: Javascript runtime error: \"ReferenceError: \"price\" is not defined. (ComputeTotalPrice.js:3)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Teşhis
JavaScript politikasını, kaynak dosyasını ve tanımlanmamış değişkene referans verilen satır numarasını belirleyin. Tüm bu bilgileri hata yanıtının
faultstringöğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstringiçinde JavaScript politikasının adıComputeTotalPrice, ilgili kaynak dosyaComputeTotalPrice.js, hatanın oluştuğu satır numarası3ve tanımlanmamış değişken adıprice.'dir."faultstring": "Execution of ComputeTotalPrice failed with error: Javascript runtime error: \"ReferenceError: \"price\" is not defined. (ComputeTotalPrice.js:3)\""JavaScript kaynak dosyasındaki satır numarasını inceleyin ve yukarıdaki 1. adımda tanımlanan tanımsız değişkenin referans verilip verilmediğini doğrulayın. Örneğin, aşağıdaki JavaScript kodu, 3. satırda faultstring'dekiyle eşleşen, tanımlanmamış
pricedeğişkenine referans veriyor:ComputeTotalPrice.js
var item = context.getVariable("request.queryparam.item"); var quantity = context.getVariable("request.queryparam.quantity"); var totalprice = parseInt(quantity) * parseInt(price); context.setVariable("TotalPrice", totalprice);İlgili değişkenin JavaScript kodunda tanımlanıp tanımlanmadığını kontrol edin. Değişken tanımlanmamışsa hatanın nedeni budur.
Yukarıda gösterilen örnek komut dosyasında, tanımlanmamış/bildirilmemiş
pricedeğişkeni kullanıldığından aşağıdaki hatayı görürsünüz:"faultstring": "Execution of ComputeTotalPrice failed with error: Javascript runtime error: \"ReferenceError: \"price\" is not defined. (ComputeTotalPrice.js:3)\""
Çözünürlük
JavaScript kodunda referans verilen tüm değişkenlerin doğru şekilde tanımlandığından emin olun.
Yukarıda gösterilen örnek JavaScript ile ilgili sorunu düzeltmek için değişken fiyatını kullanmadan önce tanımlayın. Örneğin:
var item = context.getVariable("request.queryparam.item");
var quantity = context.getVariable("request.queryparam.quantity");
var price = context.getVariable("request.queryparam.price");
var totalprice = parseInt(quantity) * parseInt(price);
context.setVariable("TotalPrice", totalprice);
Söz dizimi hatası
JavaScript motoru, dilin söz dizimine uymayan jetonlarla veya jeton sırasıyla karşılaştığında ya da JSON/XML ayrıştırma gibi ayrıştırıcı API'lerine geçersiz biçimde giriş yapıldığında SyntaxError hata türü oluşturulur.
Örneğin, geçersiz veya hatalı biçimlendirilmiş JSON yükü, JavaScript politikasında kullanılan JSON.parse API'sine giriş olarak iletilirse bu hatayı alırsınız.
Hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of javascript_policy_name failed with error: Javascript runtime error: \"SyntaxError: error_description. (javascript_source_file_name:line_number)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Örnek hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of ParseJSONRequest failed with error: Javascript runtime error: \"SyntaxError: Unexpected token: <. (ParseJSONRequest.js:2)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Teşhis
JavaScript politikasını, kaynak dosyasını, hatanın oluştuğu satır numarasını ve hata açıklamasını belirleyin. Tüm bu bilgileri hata yanıtının
faultstringöğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstringiçinde JavaScript politika adıParseJSONRequest, JavaScript kaynak dosyasıParseJSONRequest.js, hatanın oluştuğu satır numarası2ve hata açıklamasıUnexpected token'dir:"faultstring": "Execution of ParseJSONRequest failed with error: Javascript runtime error: \"SyntaxError: Unexpected token: <. (ParseJSONRequest.js:2)\""JavaScript kaynak dosyasındaki (yukarıdaki 1. adımda tanımlanan) 2. satır numarasını inceleyin ve hangi işlemin yapıldığını kontrol edin. Bir
JSON.parse()işlevi yürütülüyorsa kendisine iletilen giriş parametresini kontrol edin. Giriş parametresi geçerli değilse veya JSON biçimi bozuksa hatanın nedeni budur.Bu hataya neden olan örnek bir JavaScript kodunu aşağıda bulabilirsiniz:
var input = context.getVariable("request.content"); var result = JSON.parse(input);Bu örnekte, API proxy'sine iletilen istek yükü (
request.content),JSON.parse()işlevinin girişi olarak kullanılır.İsteğin nasıl iletildiğini gösteren örnek API çağrısını aşağıda bulabilirsiniz:
curl -v "http://<org>-<env>.apigee.net/v1/js-demo" -H "Content-Type: application/json" -X POST -d '<city>Bangalore</city>'Yukarıdaki istekte, aşağıdaki XML yükü API proxy'sine iletilir
<city>Bangalore</city>.JSON.parseAPI'si, geçerli bir JSON'un iletilmesini bekler ancak bunun yerine bir XML yükü iletildiği için aşağıdaki hatayla başarısız olur:"Execution of ParseJSONRequest failed with error: Javascript runtime error: \"SyntaxError: Unexpected token: <. (ParseJSONRequest.js:2)\""
Çözünürlük
JavaScript kodunda kullanılan ayrıştırma API'lerine geçerli giriş ilettiğinizden emin olun.
Yukarıda bahsedilen örnek politikayla ilgili sorunu düzeltmek için geçerli bir JSON yükü isteğini aşağıdaki gibi iletin:
curl -v "http://<org>-<env>.apigee.net/v1/js-demo" -H "Content-Type: application/json" -X POST -d '{"city" : "Bangalore"}'
Tür hatası
TypeError hata türü aşağıdaki durumlarda gösterilir:
- Bir işleve iletilen bir işlenen veya bağımsız değişken, bu operatör ya da işlevin beklediği türle uyumlu değil.
- Bir işlev, null, undefined veya yanlış bir nesne üzerinde çağrılıyor.
- Bir özelliğe null, tanımlanmamış veya yanlış bir nesneden erişiliyor.
Örneğin, tür hatası oluşturulur:
- Bir sayı üzerinde
toUpperCase()işlevini çağırmaya çalışırsanız. Bunun nedeni,toUpperCase()işlevinin yalnızca dize nesnelerinde çağrılabilmesidir. - Boş veya tanımlanmamış bir nesneden özellik okumaya çalışırsanız.
Hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of javascript_policy_name failed with error: Javascript runtime error: \"TypeError: error_description. (javascript_source_file_name:line_number)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
1. örnek: Yanlış nesnede işlev çağırma
Desteklenmeyen bir nesnede işlev çağırmaya çalışırsanız bu hatayı alırsınız.
Örneğin, toUpperCase() işlevini bir sayı üzerinde çağırmaya çalıştığınızda hata alırsınız. Bunun nedeni, toUpperCase() işlevinin yalnızca dize nesnelerinde çağrılabilmesidir.
Örnek hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of ConvertToUpperCase failed with error: Javascript runtime error: \"TypeError: Cannot find function toUpperCase in object 100. (ConvertToUpperCase.js:2)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Teşhis
JavaScript politikasını, kaynak dosyasını, hatanın oluştuğu satır numarasını ve hata açıklamasını belirleyin. Tüm bu bilgileri hata yanıtının
faultstringöğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstringiçinde JavaScript politika adıConvertToUpperCase, kaynak dosyaConvertToUpperCase.js, satır numarası2ve hata açıklaması **Cannot find function toUpperCase in object 100.'dir."faultstring": "Execution of ConvertToUpperCase failed with error: Javascript runtime error: \"TypeError: Cannot find function toUpperCase in object 100. (ConvertToUpperCase.js:2)\""Hata açıklaması,
toUpperCase()işlevini sayısal değeri 100 olan bir nesnede çağırdığınızı gösteriyor.JavaScript kaynak dosyasını inceleyin ve 2. satırda (yukarıdaki 1. adımda belirtilmiştir) sayısal değeri 100 olan bir nesnede
toUpperCase()işlevini çağırıp çağırmadığınızı doğrulayın. Evetse hatanın nedeni budur.Bu hataya neden olan örnek bir JavaScript kaynak dosyasını aşağıda görebilirsiniz:
ConvertToUpperCase.js
var number = 100; var result = number.toUpperCase();Yukarıda gösterilen JavaScript kodunda
numberdeğişkeni 100 değeriyle ayarlanır. Ardından, sayı nesnesindetoUpperCase()(işlevi çağrılır.toUpperCase()işlevi yalnızca dize nesnelerinde çağrılabildiğinden şu hatayı alırsınız:"Execution of ConvertToUpperCase failed with error: Javascript runtime error: \"TypeError: Cannot find function toUpperCase in object 100. (ConvertToUpperCase.js:2)\""
Çözünürlük
Her zaman geçerli nesnelerde toUpperCase() gibi işlevleri kullanın.
Yukarıda gösterilen örneği düzeltmek için bir dize değişkeni oluşturabilir ve ardından bir dizede toUpperCase() işlevini çağırabilirsiniz:
var text = "Hello Apigee !";
var result = text.toUpperCase();
2. örnek: Tanımsız bir nesneden özellik okunamıyor
Tanımlanmamış bir nesneden bir özelliğe erişmeye/özellik okumaya çalışırsanız bu hatayı alırsınız. Örneğin, bir dizideki bir nesnenin verilerine erişmeye çalıştığınızda ancak nesne tanımlanmamışsa bu hata oluşabilir. Ayrıntılı açıklamayı aşağıda bulabilirsiniz.
Örnek hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of ParseJSONResponse failed with error: Javascript runtime error: \"TypeError: Cannot read property \"length\" from undefined. (ParseJSONResponse.js:7)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Teşhis
JavaScript politikasını, kaynak dosyasını, hatanın oluştuğu satır numarasını ve hata açıklamasını belirleyin. Tüm bu bilgileri hata yanıtının
faultstringöğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstringiçinde politika adıParseJSONResponse, kaynak dosyaParseJSONResponse.js, satır numarası6ve hata açıklamasıCannot read property "length" from undefined'dir."faultstring": "Execution of ParseJSONResponse failed with error: Javascript runtime error: \"TypeError: Cannot read property \"length\" from undefined. (ParseJSONResponse.js:6)\""Bu hata, length özelliğinin tanımsız bir nesneden okunamadığını gösterir.
JavaScript kaynak dosyasındaki (yukarıdaki 1. adımda tanımlanan) satır numarasını inceleyin ve nesnenin geçerli bir değere sahip olup olmadığını veya tanımlanmamış olup olmadığını doğrulayın. Belirli bir nesnenin nasıl tanımlandığını veya türetildiğini belirlemek ve nesnenin neden tanımlanmamış olarak kabul edildiğini anlamak için kaynak dosyanın tamamını okumanız ve anlamanız gerekebilir. Belirli nesnenin gerçekten tanımlanmamış olduğunu ve bu nesneden length özelliğine erişmeye çalıştığınızı fark ederseniz hatanın nedeni budur.
Bu sorunu daha iyi anlamak için bir örneğe göz atalım:
Arka uç sunucusundan aşağıdaki JSON yanıtını aldığınızı varsayın:
{ "cars": [ { "name":"Toyota", "count": 150 } { "name":"Honda", "count": 100 }, { "name":"Ford", "count": 75 } ] }Bu JSON yanıtını ayrıştıran ve yukarıda bahsedilen hataya yol açan örnek bir JavaScript kaynak dosyasını aşağıda bulabilirsiniz:
ParseJSONResponse.js
// Get the JSON response var jsonData = context.getVariable("response.content"); print (jsonData); // Read the cars array for (var i = 0; i < jsonData.cars.length; i++) { print("name = " + jsonData.cars[i].name); print("count = " + jsonData.cars[i].count); }JavaScript kodunu dikkatlice incelediğinizde 2. satırda
response.contentdeğerininjsonDatadeğişkenine normal bir dize (tırnak içinde) olarak okunduğunu/saklandığını görebilirsiniz.jsonDatanormal bir dize olduğundanjsonDataiçindencars'ye erişmeye çalıştığınızda (jsonData.cars) tanımlanmamış olur.Ardından, tanımlanmamış olan
jsonData.carsöğesindenlengthözelliğini okumaya çalıştığınızda şu hatayı alırsınız:"faultstring": "Execution of ParseJSONResponse failed with error: Javascript runtime error: \"TypeError: Cannot read property \"length\" from undefined. (ParseJSONResponse.js:6)\""
Çözünürlük
İlgili JSON API'lerini kullanarak JSON verilerini her zaman JSON nesnesi olarak okuduğunuzdan emin olun.
Yukarıda açıklanan örnek JavaScript'i düzeltmek için JSON.parse() işlevini response.content nesnesinde kullanarak JSON nesnesi olarak alabilirsiniz. Bundan sonra cars dizisine erişebilir ve dizi üzerinde başarılı bir şekilde yineleme yapabilirsiniz.
// Get the JSON response
var data = context.getVariable("response.content");
var jsonData = JSON.parse(data);
print (jsonData);
// Read the cars array
for (var i = 0; i < jsonData.cars.length; i++)
{
print("name = " + jsonData.cars[i].name);
print("count = " + jsonData.cars[i].count);
}
URI Hatası
Bir URI işlevinde geçersiz karakterler kullanırsanız URIError hata türü oluşturulur.
Örneğin, decodeURI veya decodeURIComponent işlevlerine yüzde sembolü içeren bir URI iletirseniz bu hatayı alırsınız.
Hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of javascript_policy_name failed with error: Javascript runtime error: \"URIError: error_description. (javascript_source_file_name:line_number)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Örnek hata yanıtı gövdesi
{
"fault": {
"faultstring": "Execution of URIDecode failed with error: Javascript runtime error: \"URIError: Malformed URI sequence. (URIDecode.js:2)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Teşhis
JavaScript politikasını, kaynak dosyasını, hatanın oluştuğu satır numarasını ve hata açıklamasını belirleyin. Tüm bu bilgileri hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki hata dizesinde JavaScript politikasının adı
URIDecode</code, JavaScript kaynak dosyasının adıURIDecode.js, satır numarası2ve hata açıklamasıMalformed URI sequence'dır:"faultstring": "Execution of URIDecode failed with error: Javascript runtime error: \"URIError: Malformed URI sequence. (URIDecode.js:2)\""Hata açıklaması,
URIDecode.jsdosyasının 2. satırında hatalı biçimlendirilmiş bir URI dizisinin kullanıldığını gösteriyor.JavaScript kaynak dosyasını inceleyin ve URI işlevlerinden herhangi birine iletilen bağımsız değişkende geçersiz karakterler olup olmadığını doğrulayın. Evetse hatanın nedeni budur.
Bu hataya neden olan bir örnek JavaScript kaynak dosyasını aşağıda bulabilirsiniz:
URIDecode.js
var str = "75%-Completed"; var decoded_str = decodeURIComponent(str); context.setVariable("decoded_str", decoded_str);Yukarıda gösterilen örnek JavaScript kodunda,
strdeğişkenine iletilendecodeURIComponent()değişkeninde yasa dışı karakter olarak kabul edilen bir yüzde işareti var. Bu nedenle şu hatayı alırsınız:"Execution of URIDecode failed with error: Javascript runtime error: \"URIError: Malformed URI sequence. (URIDecode.js:2)\""
Çözünürlük
URI işlevlerinde kullanılan tüm karakterlerin yasal ve izin verilen karakterler olduğundan emin olun.
Yukarıda açıklanan örnek JavaScript ile ilgili sorunu düzeltmek için yüzde simgesini kodlayın. Örneğin, %25:
var str = "75%25-Completed";
var decoded_str = decodeURIComponent(str);
context.setVariable("decoded_str", decoded_str);