Я пытаюсь загрузить файл с помощью AJAX, обработать данные в файле и затем вернуть некоторые из этих данных в пользовательский интерфейс, чтобы я мог динамически обновите экран.
Я использую JQuery Ajax Form Plugin, jquery.form.js, найденный по адресу http://jquery.malsup.com/form/ для javascript, и использую Django для задний конец. Форма отправляется, и обработка на серверной стороне проходит без проблем, но когда от сервера получен ответ, мой браузер Firefox предлагает мне загрузить / открыть файл типа «application / json». В файле есть содержимое json, которое я пытался отправить в браузер.
Я не думаю, что это проблема того, как я отправляю json, поскольку у меня есть модульный json_wrapper ()
, которую я использую в нескольких местах в одном приложении.
Вот что выглядит моя форма после применения шаблонов Django:
Вы не увидите никаких кнопок отправки, потому что я вызываю submit с кнопка еще где и я использую ajaxSubmit () из плагина jquery.form.js.
Вот управляющий код javascript:
function upload_results($dialog_box){
$form = $dialog_box.find("form");
var options = {
type: "POST",
success: function(data){
alert("Hello!!");
},
dataType: "json",
error: function(){
console.log("errors");
},
beforeSubmit: function(formData, jqForm, options){
console.log(formData, jqForm, options);
},
}
$form.submit(function(){
$(this).ajaxSubmit(options);
return false;
});
$form.ajaxSubmit(options);
}
Как видите, я ' Мы отчаянно пытались увидеть, как работает функция обратного вызова, и просто создать предупреждающее сообщение в случае успеха. Однако мы так и не добрались до этого звонка. Кроме того, функция error
не вызывается и выполняется функция beforeSubmit
.
Файл, который я получаю, имеет следующее содержимое:
{"count": 18, "failed": 0, "completed": 18, "success": true, "trasaction_id": "SQEID0.231"}
Я использую здесь «успех» чтобы обозначить, смог ли сервер адекватно запустить команду post. В случае неудачи результат будет примерно таким:
{"success": false, "message":""}
Мы очень благодарны за ваше время и помощь. Я потратил на это несколько дней и хотел бы продолжить.