Может кто-нибудь помочь, у меня есть jquery и chrome блокирует всплывающее окно, которое я создаю. После некоторого расследования, похоже, проблема связана с window.open
в случае успешного вызова ajax. Есть ли способ обойти это? Мой вызов jQuery ajax должен вернуть URL-адрес, который мне нужно открыть, и поэтому я застрял.Всплывающее окно заблокировано, окно jquery window.open: AJAX? outside ok
Если я помещаю open.window
за пределы вызова ajax, это работает, но внутри (успех) он заблокирован. Я думаю, что это что-то делать с CONTEXT, но я не уверен ...
Любые идеи действительно оценили ...
Вот что у меня есть:
window.open("https://www.myurl.com"); // OUTSIDE OF AJAX - no problems
// with popup
$.ajax({
type: "POST",
url: "MyService.aspx/ConstructUrl",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Normally loads msg.d that is the url that is returned from service but put static url in for testing
window.open("https://www.myurl.com"); // THIS IS BLOCKED
},
error: function(msg) {
//alert(error);
}
});
Отлично! это работает, спасибо большое! –
Карим, ты только что спас мне день! – jodeci
Какая польза от AJAX (что означает «асинхронный Javascript и Xml»), когда вы не используете его асинхронно? Существует несколько альтернатив, например, использование модального, открытие окна перед запросом, отображение загрузочного текста и перенаправление окна при завершении. Я думаю, что это довольно грязно. – Aidiakapi