Apigee Edge belgelerini görüntülüyorsunuz.
Git:
Apigee X belgeleri. 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ğer aralığının dışında bir sayı kullanırsanız RangeError hatası oluşur. |
Referans Hatası | Beyan edilmemiş bir değişken (referans) kullanırsanız ReferenceError hatası verilir. |
Söz dizimi hatası | Söz dizimi hatası içeren kodu değerlendirmeye çalışırsanız SyntaxError hatası oluşur. |
Tür Hatası | Beklenen türlerin aralığı dışında bir işlem kullanırsanız TypeError hatası atılır. |
URI Hatası | Bir URI işlevinde geçersiz karakterler kullanırsanız URIError hatası bildirilir. |
Aralık hatası
Bir değer üzerinde işlem yaptığınızda veya bir değeri, izin verilen değerler grubunda veya aralığında olmayan bir işleve ilettiğinizde RangeError
hata türü atılır.
Örneğin, bu hata aşağıdaki durumlarda oluşur:
- Bazı Date API'leriyle 31 Eylül 2018 gibi geçersiz bir tarih kullanırsanı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ğinizde bir aralık hatası görürsünüz.- Geçersiz uzunluğa sahip bir dizi oluşturmanı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ının oluşturduğu hata mesajına bağlıdır. Size referans olması için aşağıda 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ı tanımlayın. Tüm bu bilgileri, hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
öğesinde JavaScript politikası adıParseDate
, JavaScript kaynak dosyasıParseDate.js
, hatanın oluştuğu satır numarası2
ve hata açıklamasıDate is invalid
'tir:"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 tanımlanır) 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şkenin tarihinin geçersiz 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 bulabilirsiniz:
ParseDate.js
var date = new Date('2018-09-31T11:19:08.402Z'); date.toISOString();
Bu örnekte, 2. satırda
date
değişkeni kullanılmıştır. Kaynak dosyayı incelediğinizde,date
değişkeninin geçersiz bir tarihle ayarlandığını fark edebilirsiniz:2018-09-31T11:19:08.402Z.
Eylül ayında 31 gün olmadığından bu tarih geçersizdir.Not: Bu örnekte kullanılan ISO-8601 biçimi şu şekildedir:
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ğıda gösterildiği gibi Sept 30 2018
biçiminde ayarlayabilirsiniz:
var date = new Date('2018-09-30T11:19:08.402Z');
date.toISOString();
2. Örnek: Precision API'lere 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ı belirtin. Tüm bu bilgileri, hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
öğesinde 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.
şeklindedir."faultstring": "Execution of SetNumberPrecision failed with error: Javascript runtime error: "RangeError: Precision 400 out of range. (SetNumberPrecision.js:2)\""
JavaScript kaynak dosyasını inceleyin (yukarıdaki 1. adımda tanımlanır). Belirli bir satır numarasında, hata açıklamasının parçası olarak belirtilen büyük sayı kullanılıyorsa hatanın nedeni budur.
Bu hataya neden olan örnek bir JavaScript kaynak dosyasını aşağıda bulabilirsiniz:
SetNumberPrecision.js
var number = 12.3456; var rounded_number = number.toPrecision(400); print("rounded_number = " + rounded_number);
Bu örnekte, 2. satırda 400 değeriyle büyük bir değer kullanıldığına dikkat edin. Hassasiyeti bu kadar büyük bir basamak sayısına ayarlayamayacağı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 grubu dahilinde 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 olduğunda ReferenceError
hata türü atılıyor
kullanılan (referans verilen) veya işletilen içeriklerdir.
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ımsız 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ğıdakifaultstring
politikasında JavaScript politikası adıComputeTotalPrice
, karşılık gelen kaynak dosyaComputeTotalPrice.js
, hatanın oluştuğu satır numarası3
ve tanımlanmamış değişken adıprice.
şeklindedir"faultstring": "Execution of ComputeTotalPrice failed with error: Javascript runtime error: \"ReferenceError: \"price\" is not defined. (ComputeTotalPrice.js:3)\""
JavaScript kaynak dosyasında satır numarasını inceleyin ve yukarıdaki 1. adımda tanımlanan tanımsız değişkene atıfta bulunulup bulunulmadığını doğrulayın. Örneğin, aşağıdaki JavaScript kodu, 3. satırda bulunan ve hatalı dizedekiyle eşleşen tanımlanmamış
price
değişkenine başvuruyor: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);
Belirli 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ış/tanımlanmış
price
değişkeni kullanılmıştır. Bu nedenle 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ı 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özdizimi hatası
JavaScript motoru, jetonlarla karşılaştığında SyntaxError
hata türü atılır
veya dilin söz dizimine uymayan bir jeton sırası veya geçersiz bir
biçim girişi, JSON/XML ayrıştırması gibi ayrıştırıcı API'lerine iletilir.
Örneğin, geçersiz veya bozuk JSON yükü, JavaScript politikasında kullanılan JSON.parse
API'sine giriş olarak aktarılırsa 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ı tanımlayın. Tüm bu bilgileri, hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
öğesinde JavaScript politika adıParseJSONRequest
, JavaScript kaynak dosyasıParseJSONRequest.js
, hatanın oluştuğu satır numarası2
ve hata açıklamasıUnexpected token
şeklindedir:"faultstring": "Execution of ParseJSONRequest failed with error: Javascript runtime error: \"SyntaxError: Unexpected token: <. (ParseJSONRequest.js:2)\""
JavaScript kaynak dosyasındaki 2. satırı (yukarıdaki 1. adımda tanımlanır) ve hangi işlemin gerçekleştirildiğini kontrol edin. Bir
JSON.parse()
işlevi yürütülüyorsa bu işleve geçirilen giriş parametresini kontrol edin. Giriş parametresi geçerli değilse veya hatalı biçimlendirilmiş JSON ise hata bununla ilgilidir.Aşağıda, bu hataya neden olan örnek bir JavaScript kodu verilmiştir:
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şlevine giriş olarak kullanılmıştır.İsteğin nasıl iletildiğini gösteren örnek API çağrısını burada 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 API Proxy'sine aşağıdaki XML yükü iletilir
<city>Bangalore</city>
JSON.parse
API, geçerli bir JSON'ın iletilmesini bekler ancak bunun yerine bir XML yükü geçirildiğ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şler gönderdiğinizden emin olun.
Yukarıda açıklanan örnek politikayla ilgili sorunu düzeltmek için aşağıdaki gibi geçerli bir JSON yük isteği gönderin:
curl -v "http://<org>-<env>.apigee.net/v1/js-demo" -H "Content-Type: application/json" -X POST -d '{"city" : "Bangalore"}'
Tür hatası
Şu durumlarda TypeError
hata türü verilir:
- Bir işleve aktarılan bir işlenen veya bağımsız değişken, söz konusu operatör veya işlev tarafından beklenen türle uyumsuz.
- Bir işlev boş, tanımlanmamış veya yanlış bir nesnede çağrılıyor.
- Bir özelliğe boş, tanımlanmamış veya yanlış bir nesneden erişiliyor.
Örneğin, bir tür hatası atılır:
toUpperCase()
işlevini bir sayı üzerinde çağırmaya çalışırsanız Bu çünkütoUpperCase()
işlevi yalnızca dize nesneleri üzerinde çağrılabilir.- Bir özelliği, boş veya tanımlanmamış bir nesneden 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 bir işlevi çağırmaya çalışırsanız bu hatayı alırsınız.
Örneğin, toUpperCase()
işlevini bir sayı üzerinde çağırmaya çalışırsanız
gösterir. Bunun nedeni, toUpperCase()
işlevinin yalnızca
dize nesneleri.
Ö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ı tanımlayın. Tüm bu bilgileri, hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
öğesinde JavaScript politika adıConvertToUpperCase
, kaynak dosyaConvertToUpperCase.js
, satır numarası2
ve hata açıklaması **Cannot find function toUpperCase in object 100.
şeklindedir."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 nesne üzerinde çağırdığınızı göstermektedir.JavaScript kaynak dosyasını inceleyin ve
toUpperCase()
işlevini, 2. satırda sayısal değeri 100 olan bir nesnede (yukarıdaki 1. adımda tanımlanır) çağırıp çalıştırmadığınızı doğrulayın. Cevabınız evetse hatanın nedeni budur.Bu hataya neden olan örnek bir JavaScript kaynak dosyasını aşağıda bulabilirsiniz:
ConvertToUpperCase.js
var number = 100; var result = number.toUpperCase();
Yukarıda gösterilen JavaScript kodunda
number
değişkeni 100 değerine ayarlanmıştır. ArdındantoUpperCase()(
işlevi sayı nesnesinde çağrılır.toUpperCase()
işlevi yalnızca dize nesnelerinde çağrılabildiğinden hata mesajı 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
Geçerli nesnelerde her zaman 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 dizedeki toUpperCase()
işlevi:
var text = "Hello Apigee !";
var result = text.toUpperCase();
2. örnek: Tanımlanmamış bir nesneden özellik okunamıyor
Tanımlanmamış bir nesneden bir özelliğe erişmeye/okumaya çalışırsanız bu hata mesajını alıyorsunuz. Örneğin, bu hata dizide bir nesnedir, ancak nesne tanımsızdır. Ayrıntılı açıklamayı inceleyin bölümüne göz atın.
Ö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ı tanımlayın. Tüm bu bilgileri, hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
politikasında politika adıParseJSONResponse
, kaynak dosyaParseJSONResponse.js
, satır numarası6
ve hata açıklamasıCannot read property "length" from undefined
şeklindedir."faultstring": "Execution of ParseJSONResponse failed with error: Javascript runtime error: \"TypeError: Cannot read property \"length\" from undefined. (ParseJSONResponse.js:6)\""
Hata, length özelliğinin tanımlanmamış bir nesneden okunamadığını gösterir.
JavaScript kaynak dosyasındaki satır numarasını inceleyin (yukarıdaki 1. adımda tanımlanır) ve nesnenin geçerli bir değere sahip olup olmadığını veya tanımsız olup olmadığını doğrulayın. Belirli bir nesnenin nasıl tanımlandığını veya türetildiğini ve nesnenin neden tanımlanmamış olarak bulunduğunu belirlemek için kaynak dosyanın tamamını okuyup anlamanız gerekebilir. Belirli bir nesnenin gerçekten tanımsız olduğunu görürseniz ve bu nesneden özellik uzunluğuna erişmeye çalışırsanız hatanın nedeni budur.
Bu sorunu daha iyi anlamak için bir örnek inceleyelim:
Arka uç sunucusundan aşağıdaki JSON yanıtını aldığınızı varsayalım:
{ "cars": [ { "name":"Toyota", "count": 150 } { "name":"Honda", "count": 100 }, { "name":"Ford", "count": 75 } ] }
Burada, bu JSON yanıtını ayrıştıran ve aşağıda belirtilen hataya yol açar:
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 dikkatli bir şekilde incelediğinizde, 2. satırda,
response.content
öğesinin normal bir dize olarak (tırnak işareti içinde)jsonData
değişkeninde okunduğunu/depolandığını görürsünüz.jsonData
normal bir dize olduğundan,jsonData
(jsonData.cars
) üzerindencars
özelliğine erişmeye çalıştığınızda tanımsız olacaktır.Daha sonra, tanımlanmamış
jsonData.cars
kodundanlength
ö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 bir JSON nesnesi olarak okuduğunuzdan emin olun.
Yukarıda açıklanan örnek JavaScript'i düzeltmek için JSON.parse()
işlevini kullanabilirsiniz.
response.content
nesnesini tanımlarken bunu JSON nesnesi olarak alın. Bu adımdan sonra
cars
dizisine erişip dizide başarıyla 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ü atılır.
Örneğin, decodeURI
veya
decodeURIComponent
işlevleri yerine 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ı belirtin. Tüm bu bilgileri hata yanıtının hata dizesi öğesi. Örneğin, aşağıdaki hata dizesi, JavaScript politikasının adı:
URIDecode</code
JavaScript kaynak dosyaURIDecode.js
, satır numarası ise2
ve hata açıklamasıMalformed URI sequence
:"faultstring": "Execution of URIDecode failed with error: Javascript runtime error: \"URIError: Malformed URI sequence. (URIDecode.js:2)\""
Hata açıklaması,
URIDecode.js
sayfasının 2. satırında hatalı biçimlendirilmiş bir URI sırasının kullanıldığını gösteriyor.JavaScript kaynak dosyasını inceleyin ve URI işlevlerinden herhangi birine iletilen bağımsız değişkenin geçersiz karakter içerip içermediğini doğrulayın. Cevabınız evetse hatanın nedeni budur.
Bu hataya neden olan örnek bir 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,
decodeURIComponent()
öğesine iletilenstr
değişkeni, geçersiz bir karakter olarak kabul edilen bir yüzde sembolü içeriyor; 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 olduğundan ve izin verildiğinden 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);