确定表单是通过JS还是通过用户单击提交的

时间:2016-11-11 11:37:37

标签: javascript jquery ajax forms http

我有一个问题,我应该通过JS submit函数或用户点击submit按钮(或打开另一个标签中的链接)来确定表单。

我现在找到的最好的方法是使用ajax表单提交自定义标题:

var $form = $('form#searchForm');
$.submit($form, { headers: { 'X-Session-Request': true } }).done('???');

其中$.submit是表单的$.ajax上的包装器。

但这是一个我不知道如何模拟提交响应的问题。我发了一个带有标题的表单,这一步很好,但是服务器用JS返回HTML,我应该显示这个HTML并执行脚本。我不能只是重新加载页面,因为它会导致GET请求没有我的自定义标题被发送,因此所有这些东西变得不必要。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

所以我用1秒钟的cookie来解决它。不是很优雅,但仍在工作:

function submitFormInCurrentSession() {
    addCookie('XSessionCookie', true, 1000);
    $('form#searchForm').submit();
}

其中addCookie(typescript):

function addCookie(name: string, value: any, expirationMs: number) {
    const date = new Date();
    date.setTime(date.getTime() + expirationMs);
    document.cookie = `${name}=${value}; expires=${date.toUTCString()}; path=/`;
}