【问题标题】:Sending node.js response and processing in client在客户端发送 node.js 响应和处理
【发布时间】:2014-02-19 04:10:17
【问题描述】:

我在 node.js 中有一个服务器,它处理来自用户的注册。 当有人尝试注册时,我首先检查引入的电子邮件是否已经存在于我的数据库中,如果不存在,我会回复说该电子邮件已被使用。

问题是,当我用response.write() 发送响应时,当浏览器收到响应时,它会用响应文本替换所有网页,而我想要的是使用该响应在表单旁边显示一条消息注册页面。

我还想通过 Dart 事件侦听器获得响应,以便客户端知道电子邮件正在使用中并可以显示消息。我使用 Dart 发出 HTTP 请求的代码如下:

signupSubmit.onClick.listen((e) {
    var req = new HttpRequest();

    req.onReadyStateChange.listen((e) {
      if (req.readyState == HttpRequest.DONE) {
        print('Data submitted!');
      }
    });

    req.open('POST', signupForm.action);
    req.send(JSON.encode(serializeForm(signupForm)));
});


serializeForm(FormElement form) {
    var data = {};

    form.querySelectorAll('input,select').forEach((Element el) {
        if (el is InputElement)
           data[el.name] = el.value;
    });

    return data;
}

那么如何发送可以在客户端处理的响应? 以及如何使用 Dart 获得服务器响应?

【问题讨论】:

标签: node.js dart


【解决方案1】:

signupSubmit 点击似乎提交了它的<form>。您可以使用以下命令阻止默认表单提交:

signupForm.onSubmit.listen((e) => e.preventDefault());

【讨论】:

  • 我不认为这是问题所在,因为signupSubmit 不是<input type="submit"> 而是<button id="signupSubmit"></button>
  • 默认情况下<button>(没有type)是一个提交按钮。见The BUTTON element section of the html spec。
猜你喜欢
  • 2020-11-26
  • 2015-09-24
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 2020-12-16
  • 2017-08-11
  • 1970-01-01
  • 2016-10-27
相关资源
最近更新 更多