Chrome Отправить форму и перейти в окно в Rails? - PullRequest
0 голосов
/ 21 сентября 2011

Итак, у меня есть приложение, которое отправляет форму во внешнюю корзину, используя Javascript (цель пуста), а затем я хочу, чтобы окно переместилось к контроллеру Rails, чтобы создать небольшую модель трекера, контроллер как таковой:

def add_to_cart
    @product = Product.find(params[:id])
    @product.cart_trackers.create
    redirect_to :back
end

И Javascript (в link_to, помощник onclick):

document.forms['addCart#{product.id}'].submit();
window.location.href=\"/products/add_to_cart/#{product.id}\";
return false;

И это прекрасно работает в Firefox и Internet Explorer, но Google Chrome не в восторге от такой большой навигации. Я понимаю, что AJAX может быть достойным решением, но из-за среды, в которой работает это приложение (которая представляет собой кластерную кучу Prototype, Jquery, iFrames и включает в себя), я хотел бы избежать этого, если это возможно. Ответ Chrome - запустить код window.location ... и пропустить отправку формы. Без одной или другой строки кода Chrome прекрасно выполнит одно действие.

Итак, каков был бы правильный способ написать это? Или я должен сдаться и просто поспорить в каком-нибудь AJAX?

1 Ответ

1 голос
/ 21 сентября 2011

Попробуйте использовать AJAX, но не совсем AJAX.Отправьте форму, используя любой отправитель AJAX, который вы хотите (например, $ .ajax), но ничего не делайте с ответом (т. Е. Без обратного вызова).Таким образом, данные отправляются POST, и, возможно, браузер не будет расстроен, если вы попросите его посетить два URL-адреса подряд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...