2013-03-13 3 views
0

стороны клиента кода:JQuery Ajax не получаю Node.js ответа правильно

for(var i =0; i < 1; i++) { 
    void function(item) { 
     alert(item); 
     $.ajax({ 
      url : "/documents/ajax/" + item, 
      dataType : "text", 
      success : function(data) { 
      alert("data"); 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
      alert('Error: ' + error.message); 
      } 
     }); 
    }(featuredItems.eq(i).text().trim()); 
    } 

Node.js кода:

app.get('/documents/ajax/:id.:format?', function(req, res) { 
    console.log("Request Received"); 
    res.send("Response"); 
    res.end(); 

}); 

С помощью этого кода я не может получить ответ на стороне клиента.

Если я нажимаю ctrl-c на моем сервере узлов, появляется сообщение об успешном завершении.

Пожалуйста, помогите/

UPDATE:

Если я закомментируйте следующие строки, то я получаю ответ правильно:

// app.use(express.session({secret: 'secret_key'})); 
// app.use(passport.initialize()); 
// app.use(passport.session()); 
+0

Вы можете попробовать предупредить свои данные, а не строку «данные» для одного :) Кроме того, вы могли бы предоставить больше своего кода сервера? –

+0

Я просто хотел посмотреть, вызван ли обработчик успеха. Первоначально я пытался оповестить (данные), он не работал. Я думал, что может быть что-то неправильно с самими данными. –

+0

В этом случае похоже, что у вас есть код блокировки в коде node.js (то есть response.end не заканчивается ответ). Не могли бы вы больше написать об этом? Как получить доступ к URL-адресу напрямую без запроса jQuery ajax, работает ли это? –

ответ

3

Вы используете старый стиль $ .ajax; читать http://api.jquery.com/jQuery.ajax/

else no post/get method.

Если вы думаете, у вас есть проблемы с курьерским, просто создать новое четкое приложение из терминала для тестирования: express -s myapp

вот мой $ .ajax код:

$('.form-2').on('submit', function(e) { 
    e.preventDefault(); 
     var data = {}; 
      data.email = $('#email').val().toLowerCase(); 
      data.pass = $('#password').val(); 
     $.ajax({ url: '/login' 
       , type: 'POST' 
       , data: JSON.stringify(data) 
       , contentType: 'application/json' 
      }) 
      .done(function(data) { 
       if (data.access == 'logged') ... 
      }); 
}); 

сервер:

app.post('/login', function(req, res, next) { 
    res.json({ access: 'logged' }); 
});