2016-01-27 2 views
5

Я получаю сообщение об ошибке при сохранении страницы в редакторе страниц. Как-то, когда я редактировал страницу из презентации> подробно и отображал ее в редакторе страниц, она отлично работает. Журналы ошибок находятся ниже здесь ..Сохранить ошибку возврата в 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) 

Любой вид мысли или решения могут помочь

Благодаря

+0

вы используете coveo на вашем проекте? если да, проверьте эту ссылку: https://developers.coveo.com/display/public/SitecoreV3/%5BSitecore+8.0+update+6%5D+Error+when+saving+a+Coveo+Search+Page;jsessionid= 7B2D194698A6D70954AF7F81BAB19E92 –

+0

Нет, я не использую Coveo, а мой sitecore - версия 8.1 .. И имеет другую ошибку строки (строка 38, позиция 85). Хотя, я уже делаю то, что на этой ссылке, и это не сработало – gill23

ответ

6

Это связано с подтвержденной ошибкой в ​​Sitecore. (ссылка № 84051 при открытии билета)

Вы можете решить это самостоятельно, но я по-прежнему рекомендую пройти через Sitecore, чтобы они могли убедиться, что у вас есть то, что вам нужно.

Чтобы решить, посмотрите файл /sitecore/shell/client/Sitecore/ExperienceEditor/ExperienceEditor.js, в строке 510 вы увидите, что decodeURIComponent вызывается дважды.

Обновите его, чтобы его можно было вызвать только как data: decodeURIComponent(JSON.stringify(commandContext)), чтобы устранить эту ошибку.

Кроме того, изменение необходимо в файле /sitecore/shell/client/Sitecore/ExperienceEditor/RibbonPageCode.js на линии 24.

Здесь добавленияdecodeURIComponent вызов метода является то, что фиксирует этот файл. Так вот так: ribbonUrl: decodeURIComponent(this.PageEditBar.get("url")),

Возможно, это относится и к проблеме Coveo, но мои клиенты в настоящее время не используют Coveo, поэтому я не могу это проверить.

+0

Lifesaver! Это потребовало бы меня, чтобы выследить. У вас есть ссылка на билет № 84051? –

+0

Извините @DavidMasters, не может предоставить ссылку, поскольку она идет в службу поддержки. Если вы обратитесь в службу поддержки с новым билетом и укажите этот номер, они должны быть в состоянии получить правильные исправления. Исправления включают только обновленные js-файлы. Но предложил пройти через них, если есть что-то еще, что может потребоваться изменить в вашем индивидуальном решении. –

+0

ОК, просто хотел узнать, исправляет ли последняя версия.В настоящее время я добавил отредактированный вручную файл .js в наше решение VS. Я просто понимаю, что если мы обновим sitecore в любой момент, но продолжаем публиковать устаревшую версию файла, это может вызвать проблемы. –

0

Проверить содержание всех полей, которые сохраняются. Редактор «Опыт/страница» должен сериализовать все в объект json, чтобы вызвать собственные внутренние API. В одном из ваших полей может возникнуть бродячий характер, который отключает сериализатор json. Я столкнулся с этим, когда редактор содержимого скопировал и вставлял их содержимое из другого места.

+0

Я так не думаю. потому что я знаю поле, которое дает ошибку, и я уже проверяю, имеет ли он бродячий характер или нет. – gill23

2

Это сообщение исправлено для меня. Примечание Я использую Sitecore 8.2 Update 2

Моя ошибка:

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

это исправлено для меня в 8.2.3 проблема была в параметре рендеринга, если я добавляю изображение, тогда страница не может быть сохранена (она дает ошибку). и это исправление исправило это! –

Смежные вопросы