#javascript #php #ajax #codeigniter
#javascript #php #ajax #codeigniter
Вопрос:
Я отправляю некоторые вложения с электронной почтой через ajax. Но отправка и закрытие модального сообщения электронной почты занимает слишком много времени. Итак, я хочу знать, есть ли какой-нибудь способ, чтобы мое модальное всплывающее окно закрывалось, как только я нажимаю кнопку отправки электронной почты, и ajax будет работать в фоновом режиме без каких-либо перерывов
$.ajax({
type:"POST",
url:url,
data:data,
mimeType: "multipart/form-data",
contentType: false,
cache: false,
processData: false
success: function(data, xhr, status) {
$("#demo").modal('hide');
window.location="abc.html";
}
})
Пожалуйста, помогите мне с этим.
Заранее благодарю вас.
Комментарии:
1.
$("#demo").modal('hide')
поместите это в начало функции ajax2. Судханшу, что делать, если запрос ajax завершается неудачно? значит, вы не хотите оставить модальное окно открытым?
Ответ №1:
Вы можете скрыть модальное окно перед отправкой AJAX
запроса. .ajax() имеет beforeSend
обработчик для выполнения операции перед выполнением запроса AJAX.
Код будет выглядеть примерно так,
$.ajax({
type:"POST",
url:url,
data:data,
mimeType: "multipart/form-data",
contentType: false,
cache: false,
processData: false,
beforeSend: function () {
$("#demo").modal('hide');
},
success: function(data, xhr, status) {
window.location="abc.html";
}
});
Комментарии:
1. Алок Патель: я попробовал метод ur bt, он только скрывает модальное bt, не перезагружая страницу. Страница перезагружается только тогда, когда ajax получает «успех». Пожалуйста, дайте несколько других предложений.
2. Переместить страницу, перезагрузить код
beforeSend
тоже. Отредактировал ответ.3. Не приведет ли перезагрузка страницы к прерыванию запроса AJAX?
4. @Cerbrus Вы правы, в критическом случае запрос AJAX будет прерван. Поэтому этого следует избегать.
5. Итак, дайте любое решение, чтобы я мог отправить электронное письмо с вложениями и делать другие вещи, не дожидаясь ответа.
Ответ №2:
модальное окно, имеющее параметр closable, вы можете использовать его.
и когда вы нажимаете на кнопку отправки, используйте return false;
это закроет ваше модальное окно. Я надеюсь, что это поможет вам
$.ajax({
url:'',
cache:'false',
success:function(html){
BootstrapDialog.show({
title: 'Add',
message: html,
closable: false,
onshown: function(dialogRef){
alphanumeric('');},});}});return false;