Я разработал страницу, которая отправляет форму с изображением на контроллер WebAPI2 через AJAX.Почему JQuery AJAX прерывисто возвращает ошибку 0?
Я делаю это повторно; Я разрешаю пользователю выбирать кучу изображений, они добавляют в поле выбора, затем пользователь может добавить больше из другого места или они могут удалить элементы из списка. Итак, отправлю форму, которую они заполнили изображением на сервере. Я делаю это специально для каждого изображения, поэтому я могу показать ход каждой загрузки изображения. Как только изображение находится на сервере, оно перемещается моим серверным кодом в защищенный репозиторий. Пул приложений использует конкретную учетную запись AD для выполнения ее работы.
Это отлично работает для меня, оно отлично работает для тех, кто его протестировал, но у меня есть один тестер из 8-ти, кто получает прерывистые ошибки в IE. Он не попробует его в другом браузере (у нас нет реальных тестировщиков, просто у наших пользователей, и этот упрям)
Мой серверный код api, который является частью того же проекта, даже не является удар. Я записываю, что мы ввели метод сразу с места в карьер. Кроме того, в журналах приложений для сервера не регистрируется ошибка. AJAX возвращает «error» и «0». Текст ответа отсутствует. Я регистрирую все ошибки AJAX на адрес сервера (который представляет только прекрасный, BTW)
Я изначально написал это с помощью MVC-контроллера вместо веб-API, но я переключился в надежде, что это решит проблему. Это не так.
Кнопка, которая «отправляет» форму, не является кнопкой отправки. Он вводится = «кнопка». У меня нет кнопки отправки в моей форме. У формы нет адреса для публикации. Я блокирую всю форму, так что ни одна кнопка не может быть нажата, никакие элементы не могут быть отредактированы, а элементы загружаются. В заключение я не вижу, что e.preventDefault(); было бы полезно.
На самом деле это не может быть межсайтовый скриптинг, и я не могу найти что-либо в Интернете, что предполагает, что политика межсайтового скриптинга может быть опрокинута случайным образом, но кажется, что это так.
Иногда он представляет форму и 1/3 загрузки изображений и остальную ошибку. Это не тип изображения, размер или любое из них. Я скопировал изображения, которые он загружал, и использовал их для проверки.
Мы отключили межсайтовый скриптинг на стороне сервера, и я добавил форматировщик JSONP на свою сторону, и он протестировал его без ошибок. Мы будем продолжать проверять, действительно ли это решило проблему, потому что он работал до этого, а затем снова появился вопрос.
Если это действительно межсайтовый скриптинг, вызывающий его, почему? Может ли быть что-то на сервере IIS, что заставляет его выбирать другой домен верхнего уровня, поскольку я не указываю его в своем аякс-запросе?
$.ajax({
url: getBaseURL() + 'API/FileForm',
type: 'POST',
data: dataString,
cache: false,
contentType: false,
processData: false
})
Где getBaseURL() говорит:
function getBaseURL() {
var baseURL = $("#HiddenCurrentURL").val().trim();
if (baseURL != "/") {
baseURL += "/";
}
return baseURL;
}
С HiddenCurrentURL Находясь в моем _layout:
@Html.Hidden("HiddenCurrentURL", Request.ApplicationPath)
Любая помощь будет оценена. Я не совсем уверен, что делать сейчас. Могут ли настройки браузера?
Редактировать: Он использует IE 11 - как я, так и другие тестеры. У меня есть и так еще несколько других, протестированных в Chrome и Firefox.
Edit2: Мы отключили межсайтовый скриптинг, и проблема продолжалась. Я думаю, что интересно отметить, что проблема, похоже, происходит только ночью или рано утром, в нерабочее время для работы. Я проверил с группой IIS, и они сказали, что он работает как «всегда включен», хотя ...
Возможно, это связано с версией IE. Можете ли вы предоставить версию IE? – Hackerman
@Hackerman Не уверен, что он скажет, что я добавил, но версия IE 11 - для всех тестеров. – nebulous