Так или иначе, простая форма, которую я должен подписать на список рассылки (который добавляет электронное письмо в группу Служб Google, используя gdatav2rubyclientlib ), кажется, иногда терпит неудачу.Форма отправляется через POST через jQuery, а приложение Sinatra (работает на nginx / Passenger) обрабатывает POST и отправляет мне подтверждение по электронной почте.Иногда я получаю электронные письма, которые "не определены" подписаны.Каким-то образом значение, которое вводит пользователь, теряется, но я не уверен, как и почему.,.
Вот форма HAML, из которой происходит POST:
%li.sidebar-section
%span#mailing-list-slug
get on our mailing list
<br/>
%form{:id => "mailing_list_signup", :method => "post", :action => "/mailinglist/signup/the.grapevine"}
%input{:type => 'text', :name => 'email', :value => "enter your email…", :id => 'mailing-list-signup'}
%input{:id => "mailing_list_signup_button", :type => 'submit', :value => 'sign up'}
#thanks
thanks! you're in!
Вот Javascript, который делает POST: $ ('# mailing_list_signup_button'). Click (function () {var email_address)= $ ('input # mailing-list-signup'). val ();
$.ajax({
type: "POST",
url: "/mailinglist/signup/the.grapevine",
data: "email=" + email_address,
success: function() {
$('#thanks').show('slow');
}
});
var email_address = $('input#email').val();
$.post("/mailinglist/signup/the.grapevine",
$('form#mailing_list_signup').serialize(), function(result){alert(email_address);});
return false; });
});
Вот мой обработчик маршрута для запроса POST
post '/mailinglist/signup/:list' do
adminuser = "ADMINUSERNAME"
password = "PASSWORD"
email = params[:email]
mailing_list = params[:list]
myapps = ProvisioningApi.new(adminuser,password)
myapps.add_member_to_group(email, mailing_list)
gmail(:to => 'MYEMAIL', :subject => "HEY HEY GUESS WHAT, #{params[:email]} JUST SIGNED UP FOR #{params[:list]}!", :body => "Totally not joking--")
end
Любые мысли приветствуются!