Хорошо, прежде чем я начну, позвольте мне сказать, что я просмотрел почти все ответы в 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 дней, и я бы купил пиво (без шуток! :)) для любого, кто может пролить свет на это.
Ваше здоровье!