Co mam:CKEditor nie można analizować odpowiedzi JSON
- Symfony2
- CKEditor z Image i Enhanced Image (also image2) Świat
znalazłem informacji o przesyłaniu plików na serwerze, na official site:
Przykład - Ustawianie wtyczki wysyłania obrazu:
config.extraPlugins = 'uploadimage';
config.imageUploadUrl = '/uploader/upload.php?type=Images';
Response: Plik został pomyślnie przesłany Gdy plik zostanie wysłany powodzeniem następnie odpowiedź JSON z następujących wpisów jest spodziewanych:
- dodane - Zestaw do 1.
- fileName - Nazwa przesłanego pliku.
- adres URL - URL do przesłanego pliku o adresie URL ( ).
przykład:
{
"uploaded": 1,
"fileName": "foo.jpg",
"url": "/files/foo.jpg"
}
Symfony powraca JSON responce:
return new JsonResponse(
array(
'uploaded' => '1',
'fileName' => $image->getName(),
'url' => $image->getWebPath()
)
);
Po pomyślnym przekazaniu obrazu widać:
i błędów w konsoli JS:
zasobów interpretować jako dokument, ale przeniesione z typem MIME application/json : "http://example.com/app_dev.php/dashboard/settings/upload/image?CKEditor=example_post_content&CKEditorFuncNum=1&langCode=en".
Ale trzeba pracować jak na official page (patrz drugi edytor)
Próbowałem wrócić inna odpowiedź Symfony, jak:
$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;
ale nie prac. Dowolny pomysł?
UPDATE
I rozwiązał problem za pomocą answer. Kod końcowy wygląd FCKeditor jak:
$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;
Czy ktoś zna inne rozwiązanie lub dlaczego rozwiązanie z odpowiedzi JSON nie działa?
odpowiedź
Czy możesz pokazać kod js, który wywołuje backend? –
dlaczego istnieje znak dolara w '$ return new JsonResponse' – chiliNUT
@chiliNUT tylko błąd kopiuj-wklej –