У меня есть фрагмент кода, который выглядит следующим образом.
app.get('/auth/facebook', function( request, response ) {
if( request.session.user ){
response.render( 'index.jade' );
} else {
request.authenticate(['facebook'], function(error, authenticated) {
if( authenticated ) {
request.session.user = request.getAuthDetails().user;
response.writeHead(303, { 'Location': "/auth/facebook" });
}
});
}
});
Если есть пользователь в сеансе, он будет отображать страницу, если нет, он получит пользователя из Facebook и сохранит его.в переменной сеанса и перезагрузите страницу ... и визуализируйте ее.Работает отлично.Но я хочу вызвать этот кусок кода через AJAX и сделать что-то вроде этого:
app.get('/auth/facebook', function( request, response ) {
response.contentType('application/json');
if( request.session.user ){
response.send(JSON.stringify({'authenticated':true}));
} else {
request.authenticate(['facebook'], function(error, authenticated) {
if( authenticated ) {
request.session.user = request.getAuthDetails().user;
response.writeHead(303, { 'Location': "/auth/facebook" });
} else {
response.send(JSON.stringify({'authenticated':false}));
}
});
}
});
Но это не работает.Он говорит: «Невозможно использовать API изменяемого заголовка после отправки» и помещает его в бесконечный цикл, говоря: «Невозможно отобразить заголовки после их отправки клиенту».снова и снова.
Я поступаю неправильно?Я хочу, чтобы код моего сервера соединялся с Facebook без необходимости перезагрузки страницы.