【问题标题】:Silverstripe Argument 1 of Node.appendChild does not implement interface NodeNode.appendChild 的 Silverstripe 参数 1 没有实现接口 Node
【发布时间】:2016-08-29 07:59:31
【问题描述】:

我正在运行 Silverstripe 3.0X 版本。我在 Codero 上有几个网站,所有网站都运行良好。我决定将一台移至我的新 Amazon Linux 服务器。除了一个,我什么都能做。

当我进入我的项目的管理端时:http://illusion.info/admin/pages/,它加载正常并且工作正常。但是当我尝试通过 ajax 导航时,比如点击其他导航链接说设置或报告,我得到一些 javascript 错误,这是

TypeError: Argument 1 of Node.appendChild does not implement interface Node.
fragment.appendChild(script);}}}

http://illusion.info/assets/_combinedfiles/lib.js

我不知道这个问题。我该如何修复它或尝试跟踪它?

【问题讨论】:

  • 您处于开发模式吗?您可以安装 xdebug 以获得良好的回溯吗? (请务必稍后将其停用)您是否启用了错误日志记录?在使用例如调试 ajax 时您能看到其他任何内容吗? firebug 的网络标签?
  • 我也试过开发模式,但没有错误。 Firebug 只显示我上面提到的这两行错误。我猜一些服务器设置问题?因为同样在 Codero 服务器上运行良好。
  • 只有在直播模式下才会出现错误?在浏览器控制台中 - 这是一个 JS 错误,没有 PHP 错误?
  • 是的@wmk,我在开发和实时模式下都遇到错误。但这似乎是一个 js 错误,我只能在控制台中看到,当我尝试通过 ajax 加载页面时也是如此。当我像重新加载页面一样正常加载它时,它工作正常并且没有错误......我知道它很奇怪,我以前也没有见过它。
  • 我猜你从 AJAX 调用中获取了一些数据?我会看看你得到的回应......

标签: javascript silverstripe


【解决方案1】:

您的 SS 3.0.x 版本非常旧,请至少升级到最新的 SS 3.0.14

问题出在 LeftAndMain.js

if(xhr.getResponseHeader('Content-Type')=='text/json') {
    newFragments=data;
} else {
    newFragments['Content']=data;
}

实际响应头较长,不符合条件

Content-Type:text/json;charset=UTF-8

已修复以正确处理

if(xhr.getResponseHeader('Content-Type').match(/^text\/json[ \t]*;?/i)) {

【讨论】:

    猜你喜欢
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多