Recibo un error cuando guardo una página en el editor de página. De alguna manera, cuando edité la página desde presentación> detalle y la muestro en el editor de página, funciona bien .. Los registros de errores se encuentran a continuación aquí ..

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)

Cualquier tipo de pensamiento o solución puede ayudar

Gracias

5
gill23 27 ene. 2016 a las 08:45

3 respuestas

La mejor respuesta

Esto se debe a un error confirmado en Sitecore. (referencia # 84051 al abrir un boleto)

Puede resolver esto usted mismo, pero aún así recomiendo pasar por Sitecore para que puedan asegurarse de que tiene lo que necesita.

Para resolverlo, mire el archivo /sitecore/shell/client/Sitecore/ExperienceEditor/ExperienceEditor.js, en la línea 510 verá que decodeURIComponent está siendo llamado dos veces.

Actualizarlo para que solo se llame una vez como data: decodeURIComponent(JSON.stringify(commandContext)) resolverá el error.

Asimismo, se requiere un cambio en el archivo /sitecore/shell/client/Sitecore/ExperienceEditor/RibbonPageCode.js en la línea 24.

Aquí, adding la llamada al método decodeURIComponent es lo que corrige este archivo. Así que así: ribbonUrl: decodeURIComponent(this.PageEditBar.get("url")),

Esto probablemente también resuelva el problema de Coveo, pero mis clientes no están usando Coveo actualmente, así que no puedo verificarlo.

7
Craig Taylor 16 feb. 2016 a las 21:20

Verifique el contenido de todos los campos que se están guardando. El editor de Experiencia / Página tiene que serializar todo en un objeto json para llamar a sus propias API internas. Puede haber un carácter perdido en uno de sus campos que activa el serializador json. Me encontré con esto cuando el editor de contenido había copiado y pegado su contenido de otra parte.

0
Derek Dysart 27 ene. 2016 a las 12:33

Esta publicación se arregló para mí. Tenga en cuenta que estoy usando Sitecore 8.2 Update 2

Mi error:

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.r.d).forEach(function (d) {
              if (d.r instanceof Array) {
                  d.r.forEach(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
    });
}
2
Rob Scott 31 mar. 2017 a las 15:17