Загрузка файла Jquery.form (3.51.0-2014.06.20) не работает в IE9 (приложение SharePoint)

Хорошо, прежде чем я начну, позвольте мне сказать, что я просмотрел почти все ответы в SO и в других местах reg. jq проблемы с загрузкой формы и уверен, что эта проблема отличается.

В основном происходит то, что загрузка файла проходит нормально, и ответ возвращается в формате application/json с идентификатором от контроллера загрузки. Первоначально в IE ответ предлагал загрузить, и чтобы решить эту проблему, я изменил тип контента на text/json (text/html, text/xml). Теперь он больше не запрашивает загрузку, но когда я пытаюсь получить доступ к ответу в поисках возвращаемых значений, он оказывается пустым. Код выглядит так, а xhr.responseText пуст.

 $('#upload-file-data-form').ajaxSubmit({
                    xhrFields: { withCredentials: true },
                    url: url,
                    dataType: "json",
                    data: { DataItems : "some data" },
                    complete: function (xhr) {
                        var json = xhr.responseText;
                        var data = $.parseJSON(json);
                        onDone(data.d);
                    },
                    errors: function () {
                        onFail();
                    }
                });

Извлечение Fiddler из возвращенного JSON.

введите здесь описание изображения

Приложение размещается в SP онлайн, а загрузка происходит на конечную точку веб-API в Azure. Поскольку это отлично работает в Chrome и IE11, я предполагаю, что это проблема CORS в IE9. Я возился с этим уже более 2 дней, и я бы купил пиво (без шуток! :)) для любого, кто может пролить свет на это.

Ваше здоровье!


person user3303849    schedule 25.08.2014    source источник
comment
Я считаю, что IE9 должен выполнить предварительную проверку запроса CORS; вы уже читали эту статью? blogs.msdn. com/b/ie/archive/2012/02/09/   -  person Tieson T.    schedule 25.08.2014
comment
Да, я видел это. Дело в том, что в этой ситуации он отлично выполняет POST (загрузку). И ответ тоже проходит нормально с 200. Но ResponseText теряется где-то в библиотеках jqeury, я не могу понять, где.   -  person user3303849    schedule 25.08.2014


Ответы (1)


Возможно, потому что у вас есть синтаксическая ошибка в вашем коде:

data: { "some data" }

Выберите между (отправьте объект)

data: { name: "firstname"}

или массив

data: ["some data"]
person Markus I.    schedule 25.08.2014
comment
Я думаю, он сделал это для экономии места, поэтому "some data". - person royhowie; 26.08.2014
comment
нет, это не так, я боюсь. Я просто отредактировал это, чтобы убрать беспорядок. Сообщение происходит нормально, и файл загружается, и только ответ сервера теряется. - person user3303849; 26.08.2014