Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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 异步:为什么表单后重定向?_Javascript_Html_Node.js - Fatal编程技术网

Javascript 异步:为什么表单后重定向?

Javascript 异步:为什么表单后重定向?,javascript,html,node.js,Javascript,Html,Node.js,目标: 张贴表格 将文件上载到AWS S3 在HTML页面上显示有效消息 使用节点JS,HTML 页面继续从服务器等待。 从服务器上看,似乎所有功能都已完成运行 你能分享一下这个问题的经验/解决问题的方法吗 HTML: <form method="POST" action="/submit_form/"> <input type="hidden" id="avatar_url" name="avatar_url" value="/public/default.png

目标:

  • 张贴表格
  • 将文件上载到AWS S3
  • 在HTML页面上显示有效消息
使用节点JS,HTML

页面继续从服务器等待。 从服务器上看,似乎所有功能都已完成运行

你能分享一下这个问题的经验/解决问题的方法吗

HTML:

<form method="POST" action="/submit_form/">
    <input type="hidden" id="avatar_url" name="avatar_url" value="/public/default.png" />
    <input type="text" name="username" placeholder="Username" /><br />
    <input type="text" name="full_name" placeholder="Full name" /><br /><br />
    <input id="form_input" type="submit" value="Update profile" />
</form>
以及管理代码的职位:

app.post('/submit_form', function(req, res){
  //something to be done
  console.log("submit form .....")
});

 app.get('/sign_s3', function(req, res){
 aws.config.update({accessKeyId: AWS_ACCESS_KEY, secretAccessKey: AWS_SECRET_KEY});
var s3 = new aws.S3();
var s3_params = {
  Bucket: S3_BUCKET_CREATION,
  Key: req.query.file_name,
  Expires: 60,
  ContentType: req.query.file_type,
  ACL: 'public-read'
};
s3.getSignedUrl('putObject', s3_params, function(err, data){
if(err){
    console.log("/sign S3 : error");
    console.log(err);
}
else{
    var return_data = {
        signed_request: data,
        url: 'https://'+S3_BUCKET_CREATION+'.s3.amazonaws.com/'+req.query.file_name
    };
    res.write(JSON.stringify(return_data));
    console.log("/sign S3 : end");
    res.end("200");
   }
  });
});

您需要使用
res.status(200).end()发送响应
否则,您的客户端将一直等待服务器的响应,而该响应永远不会到达。

您需要使用
res.status(200).end()发送响应否则,您的客户端将一直等待服务器的响应,而该响应将永远不会到达。

您可以共享您的代码吗?这似乎有点含糊不清。你愿意分享你的代码吗?它可能在做表单通常做的事情,即发布和重定向/刷新页面。你需要防止默认行为。你知道怎么做吗?取出
action=“/submit\u form/”
,在js中处理提交事件上的表单提交,并返回false:你能共享你的代码吗?这似乎有点含糊不清。你愿意分享你的代码吗?它可能在做表单通常做的事情,即发布和重定向/刷新页面。您需要防止默认行为。您知道怎么做吗?取出
action=“/submit\u form/”
,在js中处理提交事件上的表单提交,并返回false:
app.post('/submit_form', function(req, res){
  //something to be done
  console.log("submit form .....")
});

 app.get('/sign_s3', function(req, res){
 aws.config.update({accessKeyId: AWS_ACCESS_KEY, secretAccessKey: AWS_SECRET_KEY});
var s3 = new aws.S3();
var s3_params = {
  Bucket: S3_BUCKET_CREATION,
  Key: req.query.file_name,
  Expires: 60,
  ContentType: req.query.file_type,
  ACL: 'public-read'
};
s3.getSignedUrl('putObject', s3_params, function(err, data){
if(err){
    console.log("/sign S3 : error");
    console.log(err);
}
else{
    var return_data = {
        signed_request: data,
        url: 'https://'+S3_BUCKET_CREATION+'.s3.amazonaws.com/'+req.query.file_name
    };
    res.write(JSON.stringify(return_data));
    console.log("/sign S3 : end");
    res.end("200");
   }
  });
});