CKEditor 无法解析 JSON 响应
2022-08-30 15:22:29
						我有什么:
- Symfony2
 - 具有图像和增强图像(也是图像2)插件的CK编辑器
 
我在官方网站上找到了有关将文件上传到服务器的信息:
示例 — 设置图像上传插件:
config.extraPlugins = 'uploadimage';
config.imageUploadUrl = '/uploader/upload.php?type=Images';
响应:文件上传成功 文件上传成功后,应提供具有以下条目的 JSON 响应:
- 已上载 – 设置为 1。
 - 文件名 – 上载文件的名称。
 - 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类型应用程序/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;
但不起作用。有什么想法吗?
更新
我通过使用答案解决了这个问题。最终的 FCK 编辑器代码如下所示:
$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响应的解决方案不起作用?
					
				