在客户端发送node.js响应和处理

时间:2014-02-18 18:20:03

标签: node.js dart

我在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获得服务器响应?

1 个答案:

答案 0 :(得分:1)

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

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