ExtJs3.Дефект при загрузке файла - PullRequest
0 голосов
/ 09 ноября 2011

Чтобы загрузить файл, используя inputType: 'file' , а для формы предписано fileUpload: true . Все отлично работает, файл сохранен. Но после сохранения файла блок успех (из запроса ajax) не выполняется. Т.е. все остановки к waitMsg: «Сохранение данных ...» .

Что может быть не так?

Ответы [ 2 ]

2 голосов
/ 06 апреля 2012

Кроме того, не забудьте установить в заголовке Content-Type правильный MIME-тип в ответе вашего сервера: «text / html».Все остальное приведет к тому, что ExtJS выдаст ошибку при декодировании вашего ответа.

В PHP это можно сделать с помощью

<?php    
    header('Content-type: text/html');
    echo json_encode(array('success' => true));
?>

Из документов API ExtJS:

Если сервер использует JSON для отправки возвращаемого объекта, тогда заголовок Content-Type должен быть> установлен на «text / html», чтобы указать браузеру вставлять текст без изменений в тело документа.

Символы, которые имеют значение для анализатора HTML, должны отправляться как объекты HTML, поэтому кодируйте> "<" как "<", "&" как "&" и т. Д. </p>

Убедитесь, что вы действительно экранировалиспециальные символы HTML как предложено.Если вы этого не сделаете, ExtJS может все же преуспеть в анализе ответа сервера, но с неожиданными поворотами: одинарные кавычки в HTML-подобных строках превращаются в "' и т. Д.

1 голос
/ 12 ноября 2011

Возможно, вам следует отправить обратно результат сервера в форму extjs, напечатав это на сервере:

echo '{success:true, data: "save" }'
...