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) 

任何想法或解决方案都可能有所帮助

谢谢

这是由Sitecore中确认的错误引起的。 (开票时参考#84051)

您可以自己解决此问题,但我仍然建议您通过Sitecore以确保您拥有所需的内容。

要解决这个问题,请查看/sitecore/shell/client/Sitecore/ExperienceEditor/ExperienceEditor.js文件,在第510行,您将看到decodeURIComponent被调用两次。

将其更新为只调用一次data: decodeURIComponent(JSON.stringify(commandContext))将解决错误。

同样,第24行的/sitecore/shell/client/Sitecore/ExperienceEditor/RibbonPageCode.js文件需要进行更改。

在这里, 添加 decodeURIComponent方法调用是修复此文件的原因。 像这样: ribbonUrl: decodeURIComponent(this.PageEditBar.get("url")),

这可能也解决了Coveo问题,但我的客户目前没有使用Coveo,所以我无法validation。

这篇文章为我修好了。 注意我正在使用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.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 }); } 

检查要保存的所有字段的内容。 体验/页面编辑器必须将所有内容序列化为json对象以调用其自己的内部API。 绊倒json序列化器的一个字段中可能存在一个流浪角色。 当内容编辑器从其他地方复制并粘贴其内容时,我遇到了这个问题。