2016-10-04 3 views
1

Я пытаюсь отправить форму документа google через AJAX, но она не работает. Он продолжает пытаться отправить форму на страницу, на которой я нахожусь, как GET, а не запрос url формы POST, который я пытаюсь выполнить.Форма AJAX отправляет GET & отправляет форму на текущую страницу вместо POST jquery

Моя форма выглядит

<form id="ss-form" target="_self" onsubmit="" action=""> 

..... 
<input type="submit" name="submit" value="Submit" id="ss-submit" class="jfk-button jfk-button-action "> 
</form> 

и мой JS выглядит следующим образом:

<script> 
$('#ss-form').submit(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: "https://docs.google.com/a/example.com/forms/d/e/1FAI324B_-XUt0dQ-0AmlfwdfUu5dbEefwjVNud_hNlOKQ/formResponse", 
     data: $(this).serialize(), 
     type: "POST", 
     dataType: "xml", 
     success: function(data) { 
      console.log('Submission successful'); 
     }, 
     error: function(xhr, status, error) { 
      console.log('Submission failed: ' + error); 
     } 
    }); 
}); 
</script> 

Но это только перезагружает мою страницу как example.com?entry.1850833=test и это как запрос GET ,

Любые идеи, почему это происходит? Как мне получить его для отправки через код AJAX и остановить форму, просто обновляющуюся на текущей странице как GET?

+0

Возможный дубликат [event.preventDefault() vs. return false] (http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false) –

+0

Я пробовал этот ответ, и он не Сделайте разницу @MikeC – user1180888

+1

Вы пытались удалить 'onsubmit =" "'? Добавили ли вы 'return false',' to * end * вашего обработчика? Ожидаете ли вы, что DOM будет готов, прежде чем добавлять обработчик? –

ответ

0

попробуйте добавить возврат ложных

$.ajax({ 
    url: "https://docs.google.com/a/example.com/forms/d/e/1FAI324B_-XUt0dQ-0AmlfwdfUu5dbEefwjVNud_hNlOKQ/formResponse", 
    data: $(this).serialize(), 
    type: "POST", 
    dataType: "xml", 
    success: function(data) { 
     console.log('Submission successful'); 
    }, 
    error: function(xhr, status, error) { 
     console.log('Submission failed: ' + error); 
    } 
}); 
return false; 
+0

Нет, он по-прежнему просто отправляет запрос на эту же страницу. Должен ли JS быть в форме или что-то еще? У меня это в верхней части моей страницы. – user1180888

+1

Да, если вы не обертываете его с помощью $ (документа). Уже или что-то подобное. Если скрипт находится перед формой, то, когда вы пытаетесь зарегистрировать обработчик отправки, форма еще не существует, и поведение браузера по умолчанию будет иметь место. – fistuks

+0

Спасибо @fistuks, это была проблема. У меня был сценарий наверху. Спасибо!! – user1180888

0

Удалить «_self», не должно быть никакой целевой, так как вы отправляете форму через AJAX.

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