AJAX表格发送GET&将表单发送到当前页面而不是POST jquery

时间:2016-10-04 17:23:02

标签: javascript jquery ajax forms google-form

我正在尝试通过AJAX提交谷歌文档表单,但它不起作用。它一直试图将表单发送到我正在进行的GET页面,而不是我正在尝试的google表单POST网址请求。

我的表单看起来像

<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?

2 个答案:

答案 0 :(得分:0)

尝试添加return false

$.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;

答案 1 :(得分:0)

删除“_self”,因为您通过AJAX提交表单,所以应该没有目标。