2014-02-18 102 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

相關問題