2014-02-18 69 views
1

我在node.js中有一个处理用户注册的服务器。 当有人尝试注册时,我首先检查引入的电子邮件是否已经存在于我的数据库中,如果没有,我会发送回应,说已经使用了该电子邮件。在客户端发送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获得服务器响应?

+0

我想您找到解决问题的办法在这里http://stackoverflow.com/questions/11801516或这里 http://stackoverflow.com/questions/20749740 –

+0

这里是关于这个话题的文章https://www.dartlang.org/docs/tutorials/forms/#submitting-a-form和 http://blog.sethladd.com/2013/06/forms-http-servers- and-web-components.html –

回答

1

signupSubmit点击似乎提交其<form>。您可以阻止默认表单提交有:

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

我认为这不是问题,因为'signupSubmit'不是'',而是'' – dieortin

+1

默认情况下'

+0

实际上是这个问题,谢谢! – dieortin

相关问题