CKEditor的无法解析JSON响应
我有什么:CKEditor的无法解析JSON响应
- Symfony2的
- 的CKEditor与Image和Enhanced Image (also image2)插件
我发现了大约将文件上传到服务器上official site信息:
示例 - 设置图片上传插件:
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()
)
);
后成功上载的图像I看到:
和错误在JS控制台:
资源解释为文献但MIME类型 应用/ JSON移送: “http://example.com/app_dev.php/dashboard/settings/upload/image?CKEditor=example_post_content&CKEditorFuncNum=1&langCode=en”。
但必须努力喜欢上了official page(见第二主编)
我试图从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;
而不是作品。任何想法?
UPDATE
我用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响应解决方案不起作用?当您在内容粘贴图片
JSON响应,才使用文件上传从对话框,你必须使用正常的JavaScript响应
谢谢@AlfonsoML。我需要在回应内容中写什么?这意味着什么 - **正常的JavaScript响应**? –
“正常响应”是您找到的工作。多年来一直如此,只有新的粘贴系统使用JSON响应。例如,你可以在他们的文档http://docs.ckeditor.com/#!/guide/dev_file_browser_api-section-example-4和任何其他站点上找到解释如何在CKEditor中上传文件的信息 – AlfonsoML
他们有他们的example在第二编辑什么工作完全一样如你在更新。
在响应他们Content-Type: text/html
和内容
<script type="text/javascript">
window.parent.CKEDITOR.tools.callFunction("92", "\/userfiles\/images\/side-nav.jpg", "");
</script>
所以,有不太可能是另一种解决方案。
是的,的确如此,但我认为有其他解决方案,因为您可以直接访问CKEditor事件。 –
如果你问为什么有一个“92”号码集,打开这个[doc](https://docs-old.ckeditor.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)/ Custom_File_Browser)来阅读它。 – dikirill
你可以显示调用后端的js代码吗? –
为什么'$ return new JsonResponse'上有美元符号 – chiliNUT
@chiliNUT只是一个复制粘贴错误 –