12. 编辑器:出现系统错误。

当发出编辑器请求且返回的数据不是预期格式 (JSON) 时,编辑器将显示一条错误消息,指出发生错误

  • 1.3.3+: 发生系统错误 (更多信息)
  • 1.3.2-: 发生错误 - 请联系系统管理员

当编辑器无法将返回的数据解析为 JSON 时,这是一条编辑器在 UI 中显示的通用错误消息。

诊断

如果服务器未用有效的 JSON 数据答复编辑器的 Ajax 请求,我们需要知道它做了哪些答复,以便我们采取纠正行动。通常,响应将包含服务器上正在用来创建 JSON 的程序的错误消息,这将是完全解决问题的起点。

服务器数据

现代浏览器都带有内置开发人员工具,可用它来找出服务器用什么数据响应编辑器 Ajax 请求。以下是有关如何使用浏览器执行此操作的说明。

Safari

Safari 调试 - 步骤 1 1. 打开首选项

Safari 调试 - 步骤 2 2. 启用开发者菜单

Safari 调试 - 步骤 3 3. 显示页面资源

Safari 调试 - 步骤 4 4. Ajax 响应

  1. 默认情况下,Safari 隐藏其内置的开发人员工具。如果您在 Safari 中没有显示开发菜单,则需要启用它。如果显示了,请跳转到第 3 步。
    • 打开 Safari 菜单,然后选择首选项...
  2. 高级选项卡中启用开发者菜单
    • 在首选项窗口中点击高级选项卡
    • 选中在菜单栏中显示开发菜单选项
    • 关闭首选项 - 现在将显示开发菜单
  3. 查看页面加载的资源
    • 开发菜单中选择显示页面资源选项。
    • 开发人员控制台将显示在页面底部
    • 重新加载页面以便 Safari 能够捕获所有网络请求
  4. Ajax 请求的详细信息已显示。
    • Safari 将显示页面加载的所有资源(图像、脚本等)的列表。找到已向服务器发起的 Ajax 请求,然后单击。Safari 将显示该请求的详细信息。
    • 请注意,在拥有大量资源的页面上,Safari 将按类型将资源分组成文件夹。如果在您的网站上发生这种情况,找“XHRs”文件夹以查看 Ajax 请求。

请注意,这些说明是使用 Safari 7 版本编写。较新版本可能会有略有不同的步骤。

Chrome

Chrome 调试 - 步骤 1 1. 打开调试器

Chrome 调试 - 步骤 2 2. 显示控制台

Chrome 调试 - 步骤 3 3. 显示网络选项卡

Chrome 调试 - 步骤 4 4. Ajax 响应

  1. 在 Chrome 中访问开发人员工具
    • Mac:访问查看 > 开发人员 > 开发人员工具菜单选项。
    • Windows:单击 Chrome 菜单(地址栏右侧),然后选择工具 > 开发人员工具
  2. 开发人员工具显示在当前浏览器窗口底部。Chrome 默认会显示 JavaScript 控制台。
    • 单击网络选项卡以查看网络请求
    • 刷新页面以允许 Chrome 捕获所有请求
  3. 网络面板将显示 Chrome 为加载页面发出的所有请求。
    • 单击窗口底部的XHR选项以将请求缩减为仅限 Ajax(XHR)请求。
    • 双击由编辑器发出的 Ajax 请求
  4. Ajax 请求的详细信息已显示。
    • 在 Ajax 视图中单击响应选项卡以查看从服务器返回的确切数据。这就是我们感兴趣的!

请注意,这些说明是使用 Chrome 31 Mac 版本编写。较新版本或不同平台的版本可能会有略有不同的步骤。

Firefox

Firefox 调试 - 步骤 1 1. 打开调试器

Firefox 调试 - 步骤 2 2. 网络请求

Firefox 调试 - 步骤 3 3. Ajax 请求

Firefox 调试 - 步骤 4 4. Ajax 响应

  1. 在 Firefox 中访问开发人员工具
    • Mac:访问工具 > Web 开发人员 > 网络菜单选项。
    • Windows:单击 Firefox 菜单(窗口左上角),然后选择Web 开发人员网络选项。
  2. 开发人员工具显示在当前浏览器窗口底部。
    • 刷新页面以允许 Firefox 捕获所有请求
  3. 网络面板将显示 Firefox 为加载页面发出的所有请求。
    • 单击窗口底部的XHR选项以将请求缩减为仅限 Ajax(XHR)请求。
    • 双击由编辑器发出的 Ajax 请求
  4. Ajax 请求的详细信息已显示。
    • 在 Ajax 视图中单击响应选项卡以查看从服务器返回的确切数据。这就是我们感兴趣的!

请注意,这些说明是使用 Firefox 26 Windows 版本编写。较新版本或不同平台的版本可能会有略有不同的步骤。

IE

IE 调试——步骤 1 1. 打开调试器

IE 调试——步骤 2 2. 元素检查器

IE 调试——步骤 3 3. 显示网络标签页

IE 调试——步骤 4 4. Ajax 响应

IE 调试——步骤 4 4. Ajax 响应

  1. 若要在 IE 中访问开发者工具,
    • 请按 F12,或
    • 单击工具菜单(右上角,一个齿轮形图标)并选择F12 开发者工具选项。
  2. 开发者工具将会显示在当前浏览器窗口的底部。IE 默认显示文档树。
    • 单击网络选项卡以查看网络请求
  3. IE 需要专门跟踪网络流量,这一点正是我们想要的。
    • 单击开始捕获按钮来捕获网络请求
    • 刷新页面,让 IE 捕获所有请求
  4. 网络面板将显示 IE 为加载页面所发出的所有请求。
    • 双击编辑器发出的 Ajax 请求——该请求可能位于请求列表的底部或附近
  5. Ajax 请求的详细信息已显示。
    • 在 Ajax 视图中单击响应内容标签页,以查看从服务器返回的确切数据。这就是我们感兴趣的!

请注意,这些说明是以 IE 10 作为所用版本编写的。较新版本的操作步骤可能略有不同。

Opera

Opera 调试——步骤 1 1. 打开调试器

Opera 调试——步骤 2 2. 元素检查器

Opera 调试——步骤 3 3. 显示网络标签页

Opera 调试——步骤 4 4. Ajax 响应

  1. 若要在 Opera 中访问开发者工具,
    • Mac:右键单击或按住Ctrl键并单击该文档,然后选择检查元素选项。
    • Windows:右键单击该文档,然后选择检查元素选项。
  2. 开发者工具将会显示在当前浏览器窗口的底部。Opera 将显示所单击元素的信息。
    • 单击网络选项卡以查看网络请求
    • 刷新页面,让 Opera 捕获所有请求
  3. 网络面板将显示 Opera 为加载页面所发出的所有请求。
    • 单击窗口底部的XHR选项以将请求缩减为仅限 Ajax(XHR)请求。
    • 双击由编辑器发出的 Ajax 请求
  4. Ajax 请求的详细信息已显示。
    • 在 Ajax 视图中单击响应选项卡以查看从服务器返回的确切数据。这就是我们感兴趣的!

请注意,这些说明是以 Opera 18 Mac 作为所用版本编写的。较新版本或其他平台上的版本的操作步骤可能略有不同。

错误处理程序

使用 submitError 事件也可能很有用,当发生错误时编辑器会发出该事件。该事件会传递很多参数,对于诊断很有用

``js editor.on( 'submitError', function ( e, xhr, err, thrown, data ) { this.error( xhr.responseText ); } ); ```

解决办法

按照上述说明找到来自服务器的实际数据后,它将提供解决基本问题所需的信息。最常见的问题有

  • 正在使用 PHP 5.2 或更早版本(编辑器 PHP 库需要 PHP 5.3 或更早版本)
  • 代码中某处引入了一个语法错误
  • 编辑器中存在一个错误导致 PHP 返回错误信息。

在任何支持请求中,请务必包含从服务器返回的数据,以便我们可以帮助解决错误。