Как получить ответ на стороне клиента? - PullRequest
0 голосов
/ 23 июня 2011

У меня есть эта форма для загрузки XML-файла на сервер, я использую fiddler для мониторинга каждого запроса и соотв. Таким образом, сервер отправляет мне небольшой XML, и я хотел бы получить его в моем JavaScript, как XMLHttpRequest делает это

Примечание: Я загружаю файл, поэтому enctype="multipart/form-data"

var client;
var url_action = "/csm/create.action";
var dataString;

if (window.XMLHttpRequest) {
    client = new XMLHttpRequest();
} else {
    client = new ActiveXObject("Microsoft.XMLHTTP");
}
if (client.readyState == 4 && client.status == 200) {
    alert(client.responseTest);
}
client.open("POST", url_action, true);
client.setRequestHeader("enctype", "multipart/form-data");
client.send();

Мой вопрос: как я могу получить ответ от серверной стороны на переменную JS? В приведенном выше коде XMLHttpRequest я не думаю, что могу отправить многочастный запрос (загрузка файла). Так что любая альтернатива приветствуется. Какое бы решение ни давало мне ответ, это хорошо. Вот что я делаю, чтобы отправить форму. Спасибо:)

var url_action="/csm/create.action";
 $('#mainForm').attr('action', url_action);
 $('#mainForm').submit();

Обновлено с решением

$(data).find('com\\.abc\\.db\\.ConfigInfo').each(function(){
        cfgid=$(this).find('cfgId').text();
        cfgname=$(this).find('cfgName').text();
        filename=$(this).find('fileName').text();
        timestamp=$(this).find('updateDate').text();

        alert(cfgid+", "+cfgname+", "+filename+", "+timestamp);

        });

1 Ответ

1 голос
/ 23 июня 2011

У вас есть jQuery, поэтому никогда не создавайте объекты XHR вручную.Кроме того, вы не можете использовать AJAX для загрузки файлов, если вам не нужна совместимость с определенными браузерами.

И последнее, но не менее важное: вы хотите использовать jQuery-плагин формы , который автоматическиоткат к скрытому iframe и обычной форме, если в форме есть вход file.Обратите внимание, что вам нужно обернуть ваш ответ JSON в <textarea></textarea>, чтобы он работал правильно.Подробнее см. http://jquery.malsup.com/form/#file-upload.Если вы хотите вернуть XML, вам не нужно оборачивать его - он должен работать без каких-либо изменений на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...