В локальной среде запросы на загрузку файлов с использованием AJAX работают нормально.
Однако, когда при развертывании в среде виртуальной машины в консоли браузера возникает ошибка 404, а в журнале Tomcat не регистрируются соответствующие запросы.
Путь развернутой виртуальной машины установлен как ROOT.
Код Spring-контроллера:
Код: Выделить всё
@PostMapping(value = "/uploadajaxAction.do")
@ResponseBody
public ResponseEntity uploadAjaxPost(MultipartFile[] uploadFile) {
List list = new ArrayList();
String uploadfolderPath = getFolder();
File uploadPath = new File(uploadFolder + "/" + uploadfolderPath);
if (!uploadPath.exists()) {
uploadPath.mkdirs();
}
for (MultipartFile multipartFile : uploadFile) {
if (!multipartFile.isEmpty()) {
String uploadFileName = multipartFile.getOriginalFilename();
uploadFileName = uploadFileName.substring(uploadFileName.lastIndexOf(File.separator) + 1);
UUID uuid = UUID.randomUUID();
uploadFileName = uuid.toString() + "_" + uploadFileName;
try {
File saveFile = new File(uploadPath, uploadFileName);
multipartFile.transferTo(saveFile);
AttachFileVO attachVO = new AttachFileVO();
attachVO.setUuid(uuid.toString());
attachVO.setFileName(uploadFileName);
attachVO.setUploadPath(uploadfolderPath);
if (checkImageType(saveFile)) {
File thumbnailFile = new File(uploadPath, "s_" + uploadFileName);
Thumbnails.of(multipartFile.getInputStream())
.forceSize(300, 300)
.toFile(thumbnailFile);
attachVO.setImage(true);
}
list.add(attachVO);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return new ResponseEntity(list, HttpStatus.OK);
}
Код: Выделить всё
$("input[type='file']").change(function (e) {
var formData = new FormData();
var inputFile = $("input[name='uploadFile']");
var files = inputFile[0].files;
for (var i = 0; i < files.length; i++) {
if (!checkExtension(files[i].name, files[i].size)) {
return false;
}
formData.append("uploadFile", files[i]);
}
$.ajax({
url: '/uploadajaxAction.do',
processData: false,
contentType: false,
data: formData,
type: "POST",
dataType: 'json',
success: function (result) {
console.log(result);
showUploadResult(result);
}
});
});
function checkExtension(fileName, fileSize) {
var allowedExtensions = /\.(jpg|jpeg|png|gif)$/i;
var maxSize = 5242880; // 5MB
if (fileSize >= maxSize) {
alert("5MB 이하 사이즈의 이미지를 올려주세요.");
return false;
}
if (!allowedExtensions.test(fileName)) {
alert("이미지 파일(png, jpg, jpeg, gif)만 업로드할 수 있습니다.");
return false;
}
return true;
}
Код: Выделить всё
대표 이미지
[list][/list]
Просмотр запросов AJAX в инструменте разработчика браузера:
URL-адрес запроса: http://vm- адрес/uploadajaxAction.do
Статус ответа: 404 не найден
Проверьте журналы Tomcat:
В Catalina.out не регистрируются журналы запросов.
Предположительно Tomcat не получает запросы.
Проверка среды виртуальной машины:
Проект распространяется по корневому пути Tomcat.
Путь к статическому файлу и разрешения на запись установлены правильно.
Как я могу устранить причину ошибки 404 в запросе AJAX?
Почему у меня возникают проблемы в среде развертывания виртуальной машины, хотя локально она работает хорошо? p>
Как я могу проверить возможность того, что запросы например, /uploadajaxAction.do не будет перенаправлен на контроллер в среде Spring Legacy + Tomcat?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -gcp-vm-gc