Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
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ı nedenler
JavaScript politikası birçok farklı türde ScriptExecutionFailed hatası oluşturabilir. Daha sık görülen hatalardan bazıları aşağıdaki tabloda listelenmiştir:
Hata Türü | Neden |
Aralık Hatası | Geçerli değerler aralığının dışında bir sayı kullanırsanız RangeError hatası oluşur. |
Referans Hatası | Beyan edilmemiş bir değişkeni kullanırsanız (referans verirseniz) ReferenceError hatası oluşur. |
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ı oluşur. |
URI Hatası | URI işlevinde yasa dışı karakterler kullanırsanız URIError hatası oluşur. |
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:
- Tarih API'lerinden bazılarında 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 gönderirseniz. Örneğin,Number.toPrecision()
yöntemine 400 veya 500 gibi büyük bir değer gönderdiğ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 bildirilen tam hata mesajına bağlıdır. Referans olarak kullanabileceğiniz birkaç örnek aşağıda 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ı belirtin. Bu bilgilerin tümünü 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 belirtilmiştir) 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. Hatanın nedeni geçersiz bir tarih kullanılmasıdır.
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ılmaktadır. Kaynak dosyayı incelediğinizdedate
değişkeninin geçersiz bir tarihle ayarlandığını görebilirsiniz:2018-09-31T11:19:08.402Z.
Eylül ayı 31 gün olmadığı için 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 Date 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
olarak ayarlayabilirsiniz:
var date = new Date('2018-09-30T11:19:08.402Z');
date.toISOString();
2. Örnek: Hassasiyet API'lerine geçersiz numara aktarıldı
Ö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 politikası 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.
'dir."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 tanımlanmıştır) inceleyin. Hata açıklamasının bir parçası olarak belirtilen büyük sayı, belirli satır numarasında kullanılıyorsa hatanın nedeni budur.
Bu hataya neden olan örnek bir JavaScript kaynak dosyası aşağıda verilmiştir:
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. Kesinliği bu kadar çok basamağa ayarlayamadığınızda 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'deki sorunu düzeltmek için anlamlı sayı 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 (atıfta bulunulduğunda) veya üzerinde işlem yapıldığında ReferenceError
hata türü atılır.
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ı tanımlayın. Bu bilgilerin tümünü hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
öğesinde JavaScript politikası adıComputeTotalPrice
, ilgili kaynak dosyaComputeTotalPrice.js
, hatanın oluştuğu satır numarası3
ve tanımlanmamış değişken adıprice.
'tir."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 bir 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, bildirilmemiş/tanımlı
price
değişkeni kullanılmıştır; dolayısıyla, 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, dilin söz dizimine uymayan jetonlar veya jeton sırası ile karşılaştığında ya da ayrıştırıcı API'lerine JSON/XML ayrıştırma gibi geçersiz bir biçim girişi iletildiğinde SyntaxError
hata türü atılır.
Örneğin, geçersiz veya bozuk biçimli JSON yükü, JavaScript politikasında kullanılan JSON.parse
API'ye 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ı tanımlayın. Bu bilgilerin tümünü hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
öğesinde JavaScript politikası adıParseJSONRequest
, JavaScript kaynak dosyasıParseJSONRequest.js
, hatanın oluştuğu satır numarası2
ve hata açıklamasıUnexpected token
'tir:"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 kendisine iletilen giriş parametresini kontrol edin. Giriş parametresi geçerli değilse veya hatalı biçimlendirilmiş JSON ise hata bununla ilgilidir.Bu hataya neden olan örnek bir JavaScript kodu aşağıda verilmiştir:
var input = context.getVariable("request.content"); var result = JSON.parse(input);
Bu örnekte, API Proxy'ye 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, API Proxy'sine
<city>Bangalore</city>
aşağıdaki XML yükü iletilir.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 iletilen operand veya bağımsız değişken, söz konusu operatör veya işlev tarafından beklenen türle uyumlu değil.
- Bir işlev, null, tanımlanmamış veya yanlış bir nesnede çağrılır.
- 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 Bunun nedeni,toUpperCase()
işlevinin yalnızca dize nesnelerinde çağrılabilmesidir.- Boş veya tanımlanmamış bir nesnenin özelliğini 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, bir sayı üzerinde toUpperCase()
işlevini çağırmaya çalışırsanız hatayı 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ı belirtin. Tüm bu bilgileri, hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
'te JavaScript politikası adıConvertToUpperCase
, kaynak dosyaConvertToUpperCase.js
, satır numarası2
ve hata açıklaması **Cannot find function toUpperCase in object 100.
'tir."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österir.JavaScript kaynak dosyasını inceleyin ve 2. satır numarasında (yukarıdaki 1. adımda tanımlanmıştır) sayısal değeri 100 olan bir nesnede
toUpperCase()
işlevini çağırıp çağırmadığınızı doğrulayın. Cevabınız evet ise hatanın nedeni budur.Bu hataya neden olan örnek bir JavaScript kaynak dosyası aşağıda verilmiştir:
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ından, number nesnesindetoUpperCase()(
işlevi çağrılır.toUpperCase()
işlevi yalnızca dize nesnelerinde çağrılabileceği için ş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
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 dize üzerinde toUpperCase()
işlevini çağırabilirsiniz:
var text = "Hello Apigee !";
var result = text.toUpperCase();
2. örnek: Tanımlanmamış bir nesneden özellik okunamıyor
Tanımlanmamış bir nesnenin özelliğine erişmeye/bu özelliği okumaya çalışırsanız bu hatayı alırsınız. Örneğin, bu hata bir dizideki nesneye ait verilere erişmeye çalıştığınızda ve nesne tanımlanmadığında ortaya çıkabilir. Aşağıdaki ayrıntılı açıklamayı inceleyin.
Ö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ı belirtin. Bu bilgilerin tümünü hata yanıtının
faultstring
öğesinde bulabilirsiniz. Örneğin, aşağıdakifaultstring
öğesinde politika adıParseJSONResponse
, kaynak dosyaParseJSONResponse.js
, satır numarası6
ve hata açıklamasıCannot read property "length" from undefined
'tir."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 belirlemek ve nesnenin neden tanımsız olduğunu belirlemek için kaynak dosyanın tamamını okuyup anlamanız gerekebilir. Belirli bir nesnenin gerçekten tanımlanmadığını tespit ederseniz ve bu nesneden mülk uzunluğuna erişmeye çalışıyorsanı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 } ] }
Bu JSON yanıtını ayrıştıran ve yukarıda belirtilen hataya neden olan örnek bir JavaScript kaynak dosyası aşağıda verilmiştir:
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.content
değerinin normal bir dize olarak (tırnak içinde)jsonData
değişkenine okunduğunu/saklandığını görebilirsiniz.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
JSON verilerini her zaman ilgili JSON API'lerini kullanarak JSON nesnesi olarak okuduğunuzdan emin olun.
Yukarıda açıklanan örnek JavaScript'i düzeltmek için response.content
nesnesinde JSON.parse()
işlevini kullanarak JSON nesnesi olarak alabilirsiniz. Bunun ardından cars
dizisine erişebilir ve 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ı
URI işlevinde yasa dışı karakterler kullanırsanız URIError
hata türü atılır.
Örneğin, decodeURI
veya decodeURIComponent
işlevlerine yüzde sembolü içeren bir URI gönderirseniz 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 faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki hata dizesinde JavaScript politikası adı
URIDecode</code
, JavaScript kaynak dosyasıURIDecode.js
, satır numarası2
ve 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.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 karakterler içerip içermediğini doğrulayın. Cevabınız evet ise hatanın nedeni budur.
Bu hataya neden olan örnek bir JavaScript kaynak dosyası aşağıda verilmiştir:
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()
değişkenine iletilenstr
değişkeninde yasa dışı bir karakter olarak kabul edilen bir yüzde sembolü vardır. Bu nedenle aşağıdaki 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 bunlara izin verildiğinden emin olun.
Yukarıda açıklanan örnek JavaScript'teki 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);