2014-02-18 3 views
1

У меня есть сервер в node.js, который обрабатывает регистрацию у пользователей. Когда кто-то пытается зарегистрироваться, я сначала проверяю, существует ли уже введенная электронная почта в моей базе данных, а если нет, я отправляю ответ, говорящий, что это письмо уже используется.Отправка ответа и обработки узла.js на клиенте

Проблема заключается в том, что когда я отправляю ответ с response.write(), когда браузер получает ответ, он заменяет всю веб-страницу текстом ответа, и я хочу использовать этот ответ для отображения сообщения рядом с формой в страница регистрации.

Я также хочу получить ответ с помощью прослушивателя событий Дарта, чтобы клиент знал, что письмо используется и может отображать сообщение. Мой код для создания запроса 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

Смежные вопросы