2016-01-27 27 views
5

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 visualizzo nell'editor di pagina funziona correttamente. I log degli errori sono in basso qui ..Salva errore di ritorno nell'editor di pagine Sitecore

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) 

Qualsiasi tipo di pensiero o soluzione può aiutare a

Grazie

+0

stai usando Coveo sul vostro progetto? in caso affermativo, controllare questo link: https://developers.coveo.com/display/public/SitecoreV3/%5BSitecore+8.0+update+6%5D+Error+quando+saving+a+Coveo+Search+Page ;jsessionid= 7B2D194698A6D70954AF7F81BAB19E92 –

+0

No, non uso Coveo e il mio sitecore è la versione 8.1 .. E ho un errore di riga diverso (riga 38, posizione 85). Anche se, io già faccio la cosa su quel link e non ha funzionato – gill23

risposta

6

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

Si può risolvere da soli, ma consiglio comunque di passare attraverso Sitecore in modo che possano assicurarsi di avere ciò di cui si ha 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 per essere chiamato una volta come data: decodeURIComponent(JSON.stringify(commandContext)) risolverà l'errore.

Analogamente, è necessario modificare nel file /sitecore/shell/client/Sitecore/ExperienceEditor/RibbonPageCode.js sulla linea 24.

Qui, aggiungendo il metodo chiamata decodeURIComponent è ciò risolve questo file. Quindi: 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.

+0

Lifesaver! Questo mi avrebbe richiesto anni per rintracciare. Avete un link al ticket n. 84051? –

+0

Mi dispiace @DavidMasters, non posso fornire un collegamento mentre va all'helpdesk. Se si contatta il supporto con un nuovo ticket e si fa riferimento a quel numero, dovrebbero essere in grado di ottenere le correzioni corrette. Le correzioni includono solo i file js aggiornati. Ma suggerito di esaminarli nel caso in cui ci sia qualcos'altro che potrebbe essere necessario modificare la soluzione individuale. –

+0

OK, volevo solo sapere se l'ultima versione lo risolve.Per il momento ho aggiunto il file .js modificato manualmente nella nostra soluzione VS. Sono solo consapevole che se aggiorniamo il sitecore in qualsiasi momento, ma continuiamo a pubblicare la mia versione datata del file, potrebbe significare guai. –

0

controllare il contenuto di tutti i campi essere salvati. L'editor Esperienza/Pagina deve serializzare tutto in un oggetto 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.

+0

Io non la penso così. perché conosco il campo che dà l'errore e già controllo se ha carattere randagio o no .. – gill23

2

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

mio errore:

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 
    }); 
} 
+0

risolto per me in 8.2.3 il problema era che, nel parametro rendering se aggiungo un'immagine, la pagina non può essere salvata (dà errore). e questa correzione l'ha risolto! –