У меня есть вопрос, связанный с загрузкой файла с помощью POST.Запрос POST вызывает вызов GET, который не отвечает
У меня есть следующий JavaScript, который отправляет запрос POST на стороне сервера для загрузки файла:
function postCall(url, params) {
function doPostCall() {
var newForm = jQuery('<form>', {
'method':'POST',
'action': url
});
for(key in params) {
if (params.hasOwnProperty(key)) {
newForm.append(jQuery('<input>', {
'name': key,
'value': params[key],
'type': 'hidden'
}));
}
}
newForm.appendTo("body").submit();
}
Этот метод вызывается из невидимого фрейма со страницы HTML. На этой странице также есть еще один нормальный запрос GET для получения статического HTML. Тем не менее, каждый раз, когда вызывается вышеупомянутый метод, вызов для получения статической страницы никогда не возвращается со стороны сервера.
Я знаю, что это немного сложно понять с такой небольшой информацией, но этот код огромен и трудно здесь. Мой вопрос в том, что:
- Есть ли очевидная проблема с вышеуказанным кодом, который использует невидимую форму для отправки запроса POST для получения файла?
- Есть ли другой лучший способ отправить запрос POST на сервер для загрузки файла. (Люди сказали, что Ajax-вызовы не могут использоваться для загрузки файла)?
- Если этот код в порядке и нет другого способа. Есть ли способ заставить этот метод запускаться последним после загрузки всей страницы и завершения всех остальных запросов?
ли запрос получить получить прерванную из-за перезагрузки страницы, инициированной формы пост? обычно такая запись формы имеет атрибут назначения, указывающий на конкретный iframe, в результате чего выполняется перезагрузка iframe, но не вся страница, что позволит получить запрос на получение. –
Я не понимаю, почему вы не могли использовать AJAX для загрузки. И зачем использовать POST, когда вы что-то получаете? – putvande
@putvande, поскольку с помощью ajax вы не можете отправлять контент в виде файла на компьютер пользователя. –