Вот простая форма «Расскажи другу», которую я сделал в HTML, она корректно отправляет данные обратно на мой сервер и правильно отправляет.
Вот код JavaScript (он есть в CoffeeScript):
$('#tell-a-friend-form').submit (e) ->
e.preventDefault()
console.log "submitted form."
$.ajax
url: 'home/tellafriend'
type: 'POST'
data:
name: $(this).find("input[name='name']").val()
emails: $(this).find("input[name='emails']").val()
message: $(this).find("textarea[name='message']").val()
success: (result) ->
alert("ok")
$('#tell-a-friend-form').find(".loading-icon").hide()
error: (result) ->
alert("Sorry, we couldn't send your message.")
$('#tell-a-friend-form').find(".loading-icon").hide()
$('.tell-a-friend-submit').removeAttr("disabled")
$(this).find(".tell-a-friend-submit").attr("disabled", "disabled")
$(this).find(".loading-icon").show()
Теперь в контроллере мне вообще не нужно возвращать никаких сообщений, кроме, возможно, логического типа «sent ok», чтобы на стороне клиента javascript мог знать, «успешен» или «ошибочен».
В настоящее время на стороне клиента каждый раз выдается «ошибка».
Вот мой код контроллера:
def tellafriend
#send the actual email message. to be implemented.
respond_to do |format|
format.json { render :json => "success" }
end
end
Что-то не так на стороне контроллера?Я уверен, что проблема заключается здесь.Что мне нужно вернуть, если я хочу, чтобы бит «успеха» сработал?