Salva l’errore di ritorno nell’editor di pagine web di Sitecore

Viene visualizzato un errore quando si salva una pagina nell’editor di pagina. In qualche modo quando ho modificato la pagina dalla presentazione> dettagli e la si visualizza nell’editor di pagina, funziona bene .. I log degli errori sono qui sotto.

ERROR After parsing a value an unexpected character was encountered: {. Path 'scLayout', line 38, position 85. Exception: Newtonsoft.Json.JsonReaderException Message: After parsing a value an unexpected character was encountered: {. Path 'scLayout', line 38, position 85. Source: Newtonsoft.Json at Newtonsoft.Json.JsonTextReader.ParsePostValue() at Newtonsoft.Json.JsonTextReader.ReadInternal() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Sitecore.ExperienceEditor.Speak.Server.Requests.PipelineProcessorRequest`1.Process(RequestArgs requestArgs) 

Qualunque tipo di pensiero o soluzione può aiutare

Grazie

Questo è causato da un bug confermato in Sitecore. (riferimento # 84051 all’apertura di un biglietto)

Puoi risolverlo da solo, ma ti consiglio comunque di passare attraverso Sitecore in modo che possano avere quello di cui hai bisogno.

Per risolvere, guarda il file /sitecore/shell/client/Sitecore/ExperienceEditor/ExperienceEditor.js , nella riga 510 vedrai che decodeURIComponent viene chiamato due volte.

L’aggiornamento viene chiamato solo una volta come i data: decodeURIComponent(JSON.stringify(commandContext)) risolverà l’errore.

Allo stesso modo, è necessaria una modifica nel file /sitecore/shell/client/Sitecore/ExperienceEditor/RibbonPageCode.js alla riga 24.

Qui, l’ aggiunta della chiamata al metodo decodeURIComponent è ciò che corregge questo file. Così in questo modo: ribbonUrl: decodeURIComponent(this.PageEditBar.get("url")),

Questo probabilmente risolve anche il problema Coveo, ma i miei clienti non stanno attualmente utilizzando Coveo, quindi non posso verificarlo.

Questo post è stato risolto per me. Nota Sto usando Sitecore 8.2 Update 2

Errore mio:

After parsing a value an unexpected character was encountered: {. Path 'scLayout', line 1, position 2246.

http://jockstothecore.com/experience-editor-error/

 postServerRequest: function (requestType, commandContext, handler, async) { function normalizeDeviceProp(d) { if (typeof(d) !== "object") throw new Error("Unexpected presentation details XML: cannot find device property"); if (d instanceof Array) return d; var normalized = []; normalized.push(d); return normalized; } var token = $('input[name="__RequestVerificationToken"]').val(); // Custom Brainjocks code to fix Experience Editor error. var ajaxData = unescape(JSON.stringify(commandContext)); if (commandContext && commandContext.scLayout) { var obj = JSON.parse(commandContext.scLayout); if (obj && obj.r) { normalizeDeviceProp(obj.rd).forEach(function (d) { if (dr instanceof Array) { drforEach(function (r) { var val = r["@par"]; if (val && val.length > 0) { ajaxData = ajaxData.replace(unescape(val), val); } }); } }); } } jQuery.ajax({ url: "/-/speak/request/v1/expeditor/" + requestType, data: { __RequestVerificationToken: token, data: ajaxData }, success: handler, type: "POST", async: async != undefined ? async : false }); } 

Controlla il contenuto di tutti i campi che vengono salvati. L’editor Esperienza / Pagina deve serializzare tutto in un object json per chiamare le proprie API interne. Potrebbe esserci un personaggio vagante in uno dei tuoi campi che fa scattare il serializzatore json. Mi sono imbattuto in questo quando l’editor di contenuti aveva copia e incollato il loro contenuto da altrove.