<script>
$.ajaxSetup( {contentType: 'application/json'} );
function submit_data(f){
alert('submitting')
var data_string = $(f).serialize();
$.ajax({
url: "http://localhost:3000/application/1/contact_us.json?jsonpcallback=?"+data_string,
dataType: "jsonp",
type : 'post',
processData: false,
crossDomain: true,
contentType: "application/json",
jsonp: false,
jsonpcallback: result()
});
}
function result(){
alert('back in')
alert(data)
}
function jsonp1300279694167(){
alert('dhoom')
}
</script>
У меня есть сценарий выше, запрашивающий по домену и отправляющий данные в форме.
Вроде все нормально работает. Ответ JSON можно увидеть в консоли firebug. Я хочу обрабатывать ответ и отображать статусные сообщения соответственно пользователю. Как мне этого добиться?
ОБНОВЛЕНИЕ
Я пробовал, как предлагал TJ Crowder , но пока не смог. Измененный код выглядит следующим образом
function submit_data(f){
alert('submitting')
var data_string = $(f).serialize();
$.ajax({
url: "http://localhost:3000/application/1/contact_us.json?"+data_string,
dataType: "jsonp",
crossDomain: true,
success: handleSuccess()
});
}
function handleSuccess(data) {
alert("Call completed successfully");
alert(data);
}
. Он не обращается к данным
и предупреждениям undefined
. Если я пытаюсь передать его из success: handleSuccess ()
, он выдает ошибку и перенаправляет с HTTP-запросом.
Я получаю ответ от приложения Ruby on Rails
. Вот метод, который я использую.
def create
errors = ContactUsForm.validate_fields(params)
logger.info errors.inspect
if errors.blank?
respond_to do |format|
format.json {render :json => {:status => 'success'}.to_json}
end
else
respond_to do |format|
format.json {render :json => {:status => 'failure', :errors => errors}.to_json}
end
end
end
Есть ли что-то, что мне нужно настроить в моем приложении rails