Простой сервер node.js для возврата успеха или ошибки
Это должно быть довольно просто, но я не могу заставить его работать так, как я планировал.
Я просто хочу, чтобы клиент отправил форму с адресом электронной почты, а сервер node.js просматривает базу данных и возвращает запрос об успехе или ошибке после запроса отправленного адреса электронной почты. В качестве первого шага все, что я пытаюсь сделать, это вручную вернуть успех или ошибку.
На стороне клиента я использую плагин JQuery и ajaxForm.
На стороне сервера я использую форму connect на стороне node.js.
Я вижу сообщение console.log со стороны node.js, но не вижу предупреждения "SUCCESS" на стороне клиента. Вместо этого я вижу пустую страницу на localhost:8000. Я думаю, что исправление будет чем-то простым.
Любая помощь приветствуется!!!!
HTML/JS на стороне клиента:
<div class="gform">
<form id="entryForm" action="http://localhost:8000/" method="post">
<p><input type="radio" name="choice" value="1"> Choice 1</p>
<p><input type="radio" name="choice" value="2"> Choice 2</p>
<p><input type="radio" name="choice" value="3"> Choice 3</p>
<p><input type="radio" name="choice" value="4"> Choice 4</p>
<p><input type="radio" name="choice" value="5"> Choice 5</p>
<p><input type="text" name="email"> Email Address</p>
<p><input type="submit" value="Submit" /></p>
</form>
</div>
<div id="form_result">
</div>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var options = {
dataType: 'json',
target: "form_result",
success: goodResult,
error: badResult,
timeout: 1000
};
$('#entryForm').ajaxForm(options);
}
function goodResult() {
alert('SUCCESS!');
}
function badResult() {
alert('ERROR!');
}
</script>
Сторона Node.js:
var form = require('connect-form'), connect = require('connect');
var server = connect.createServer(
form({ keepExtensions: true }),
function(req, res){
// Form was submitted
if (req.form) {
req.form.complete(function(err, fields){
console.log(fields);
res.writeHead(200, { "Content-Type": "application/json" });
res.end();
});
} else {
// Regular request, return error.
}
}
);
server.listen(8000);
console.log('Express app started on port 8000....');
1 ответ
Это может быть проблемой с тем, что возвращается nodejs. Попробуйте изменить свою функцию ajax на console.log, ответ на вызов ajax и посмотрите, что возвращается. Это или проверьте заголовки ответа и тело в чем-то вроде сетевого монитора Chrome