Получил регистрационную форму с помощью скрипта ajax, POSTing to nodejs backend. Проблема заключается в том, что запрос ajax висит на протяжении 30-60 секунд перед выполнением «ошибок» или (иногда!) Событий «успеха». Если тайм-аут установлен, ошибка срабатывает через 3 секунды. Бэкэнд узла немедленно выводит результаты на консоль. Что-то не так с ajax или backend?ajax не получает ответ от nodejs
HTML:
<form id="add" action="" class="col-md-3">
<div class="form-group">
<label class="input">username</label>
<input type="text" name="username" id="username">
</div>
<div class="form-group">
<label class="input">pass</label>
<input type="password" name="pass" id="pass" class="">
</div>
<div class="form-group">
<input type="hidden" name="new" value="new" id="new">
<input type="hidden" name="role" value="admin" id="role">
</div>
<div id="submit" class="btn">Add</div>
JQuery:
$(function() {
$('#submit').on('click', function() {
var form = $('#add');
var data = {"username":$('#username').val(), "password": $('#pass').val() , "role": $('#role').val(), "new": $('#new').val()}
alert ('ajax start: ' + JSON.stringify(data));
$.ajax({
url: '/add',
type: 'POST',
data: data,
// timeout : 3000,
success: function(responseText, statusText, xhr) {
console.log("Worked!" + responseText);
alert ('success');
},
complete: function() {
alert ('complete');
},
error: function(err) {
console.log('err:');
console.log(err);
alert ('err: ' + err.statusCode() + " " + err.statusText);
}
});
});
});
маршрут для обработки запроса:
module.exports = function(req, res) {
if (req.body.hasOwnProperty("new")){
//add new user
console.log('new');
var Auth = app.locals.Auth;
Auth.register(req, function (err){
console.log('ended registration');
if (err){
console.log('err: ' + err + res);
res.json({"err":err});
}else{
console.log('successfully registered');
res.json({"success":'success'});
}
console.log('res.end');
res.end();
console.log('return');
return ;
});
Джей Шри Рам. Еще очень долго ждать. – Schtz
Вы получаете ответ? –
js Консоль немедленно записывает «400 - плохой запрос», но «завершение» запускается намного позже – Schtz