2013-12-11 4 views
1

Очень новый закодировать в общем, так извинения заранее, если я не объяснить себя должным образом,Javascript/Ajax Перенаправление Проблемы

Но у меня есть форма, что действия кусок JavaScript на кнопку.

Если форма успешно завершена, она вызывает php-файл для обработки на стороне сервера.

После обработки на стороне сервера завершена файл PHP возвращает некоторые данные (URL-адрес), который пользователь будет перенаправлен (на стороне клиента)

Это все работает отлично на рабочем столе (хром, IE, FF) и через современные мобильные устройства, однако перенаправление не работает на некоторых устройствах (ежевика для одного), а также принимает другие старые устройства. Вместо URL-адреса переадресации прямо в адресную строку он помещается после URL-адреса исходной страницы - как таковой, заставляя пользователя перенаправляться на страницу, которая, конечно, не существует.

Ниже приведен сценарий, который вызывается при отправке. Опять извинения, если ни один из вышеперечисленного не имеет смысла ... Я очень новой для всего этого:

$(function() { 
    $('#wait').hide(); 
    $('form#leads_form').on('submit', function (e) { 
     if (validateFrm()) { 
      $(":submit", this).attr("disabled", true); 
      $('#wait').show(); 
      var jqxhr = $.ajax({ 
       type: 'post', 
       timeout: 300000, 
       url: 'sell-save-leads.php', 
       cache: false, 
       data: $('form').serialize(), 
       success: function (data) { 
        //alert("Submit success: " + data); 
        window.top.location.href = data; 
       } 
      }); 
     } else { 
      //alert("validation errors"); 
      $('#wait').hide(); 
     } 
     e.preventDefault(); 
    }); 
}); 

Если кто-то может помочь или предложить несколько советов, которые было бы здорово.

ответ

0

Как ваша форма находится в плавающем фрейме я предлагаю вам использовать этот плагин JQuery для отправки сообщений от фрейма к родителю: http://benalman.com/projects/jquery-postmessage-plugin/

С этим вы можете отправить сообщение из внутри success функции, содержащее новый url, и поймать его в родительском window.

+0

Привет. Спасибо за ваш ответ. Я действительно пытался, что думаю. Причина, по которой я использую window.top.location, заключается в том, что у меня есть форма в iframe и с помощью window.location redirect остался в iframe, тогда как мне нужно, чтобы он вышел из iframe и затем перенаправил (если это имеет смысл). Я попробую еще раз. – user3091415

+0

Вы используете jQuery? если да, вы можете использовать этот плагин для отправки сообщений из iframe в его родительский: http://benalman.com/projects/jquery-postmessage-plugin/ – RononDex

+0

Привет, я использую jquery 1.9. Добавлю ли я этот плагин на свой сайт? – user3091415

0

Вы также можете использовать

window.top.location.assign(data); 

Ref: https://developer.mozilla.org/en-US/docs/Web/API/Window.location

+0

Привет. Спасибо за ответ. Пробовал это вчера и не работал - та же проблема - перенаправление отлично работало на более новых устройствах и на рабочем столе, но на более старых устройствах URL-адрес перенаправления появился после исходного URL-адреса в адресной строке – user3091415

Смежные вопросы