Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有重定向的快速表单处理。具有没有默认值的数据,但重定向。不';不使用preventDefault重定向,但不';我没有数据_Javascript_Html_Express_Xmlhttprequest - Fatal编程技术网

Javascript 没有重定向的快速表单处理。具有没有默认值的数据,但重定向。不';不使用preventDefault重定向,但不';我没有数据

Javascript 没有重定向的快速表单处理。具有没有默认值的数据,但重定向。不';不使用preventDefault重定向,但不';我没有数据,javascript,html,express,xmlhttprequest,Javascript,Html,Express,Xmlhttprequest,当时卡在第22档。我使用自定义表单提交来避免在发布表单时遇到快捷路线时重定向,但是,如果不重定向,我将丢失发送的数据 document.getElementById('playerSearchForm').onsubmit = function(_event) { _event.preventDefault(); var XHR = new XMLHttpRequest(); XHR.addEventListener('load', function(event)

当时卡在第22档。我使用自定义表单提交来避免在发布表单时遇到快捷路线时重定向,但是,如果不重定向,我将丢失发送的数据

document.getElementById('playerSearchForm').onsubmit = function(_event)
{
    _event.preventDefault();

    var XHR = new XMLHttpRequest();
    XHR.addEventListener('load', function(event)
    {
        var res = JSON.parse(event.currentTarget.response);
    });

    XHR.addEventListener('error', function(event)
    {
        // error handling
    });

    XHR.open('POST', '/createGame');

    var formData = new FormData();
    formData.append('username', document.getElementById("usernameInput").value);

    XHR.send(formData);
}

以上是我提交表格的方式。如果我有
\u event.preventDefault()
,那么我的页面不会重定向,这是预期的结果。但是
\u event.preventDefault
也会停止在我的快速路线中的
req.body
上提供用户名。如果我取出
\u event.preventDefault()
,那么我可以访问
req.body
中的用户名,但是页面会重定向。是否有其他发送数据的方法,而不是使用
FormData
,或者是否可以从默认设置中调用某些内容来确保数据可用?

好的,我找到了解决方案

我的部分问题是,从一开始就删除
\u event.preventDefault()
意味着表单提交发生了两次

另一个问题是FormData的发送方式不可stringifiable()。我没有深入研究文档,但我假设我使用的默认主体解析无法处理FormData。为了解决这个问题,我完全删除了formData,只需发送XHR请求,如下所示:

XHR.send('username='+document.getElementById("usernameInput").value);

我不确定这是否是正确的做法,但它起作用了

好的,我找到了解决办法

我的部分问题是,从一开始就删除
\u event.preventDefault()
意味着表单提交发生了两次

另一个问题是FormData的发送方式不可stringifiable()。我没有深入研究文档,但我假设我使用的默认主体解析无法处理FormData。为了解决这个问题,我完全删除了formData,只需发送XHR请求,如下所示:

XHR.send('username='+document.getElementById("usernameInput").value);
我不确定这是否是正确的做法,但它起作用了