CKEditor无法解析JSON响应

马克斯·利普斯基(Max Lipsky):

我有的:

  1. Symfony2
  2. 带有图像增强图像(也为image2)插件的CKEditor

我在官方网站上找到了有关将文件上传到服务器的信息

示例—设置图像上传插件:

config.extraPlugins = 'uploadimage';
config.imageUploadUrl = '/uploader/upload.php?type=Images';

响应:成功上传文件当成功上传文件时,期望包含以下条目的JSON响应:

  • 已上载–设置为1。
  • fileName –上传文件的名称。
  • url –上载文件的URL(URL编码)。

例:

{
    "uploaded": 1,
    "fileName": "foo.jpg",
    "url": "/files/foo.jpg"
}

Symfony返回JSON响应:

return new JsonResponse(
            array(
                'uploaded'  => '1',
                'fileName'  => $image->getName(),
                'url'       => $image->getWebPath()
            )
        );

成功上传图片后,我看到:

在此处输入图片说明

JS控制台中的错误:

资源被解释为文档,但以MIME类型application / json传输:“ http://example.com/app_dev.php/dashboard/settings/upload/image?CKEditor=example_post_content&CKEditorFuncNum=1&langCode=en ”。

但是它必须像在官方页面上一样工作(请参阅第二个编辑器)

我试图从Symfony返回其他响应,例如:

$response = new Response();
        $response->headers->set('Content-Type', 'application/json');

        $response->setContent(
            json_encode(
            array(
                'uploaded'  => '1',
                'fileName'  => $image->getName(),
                'url'       => $image->getWebPath()
            )
        ));

        return $response;

但不起作用。任何想法?

更新

我通过使用answer解决了问题最终的FCKeditor代码如下所示:

$response = new Response();

$response->headers->set('Content-Type', 'text/html');

$content = "<script type=\"text/javascript\">\n";
$content .= "window.parent.CKEDITOR.tools.callFunction(1, '".$image->getWebPath()."', '' );\n";
$content .= "</script>";

$response->setContent($content);

return $response;

有谁知道另一个解决方案,或者为什么带有JSON响应的解决方案不起作用?

尤金·蒂林(Eugene Tiurin):

他们在第二个编辑器中的示例中的内容与您在UPDATE中放置的内容完全相同

作为回应,他们有Content-Type: text/html,内容是

<script type="text/javascript">
  window.parent.CKEDITOR.tools.callFunction("92", "\/userfiles\/images\/side-nav.jpg", "");
</script>

因此,不太可能有其他解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章