1
EJSで表現するのが初めてです。ReferenceError:Ajaxコールの後にユーザーがリダイレクトされた後にウィンドウが定義されていません
DBに値を送信するためのajax投稿要求を作成しようとしました。
$.ajax({
type: 'POST',
url: '/register',
data: user,
success: function(data){
console.log(data);
return data;
}
});
return false;
この呼び出しが成功すると、制御は呼び出し元の関数に行く
var sess;
app.post('/register',urlencodedParser,function(req,res){
sess=req.session;
var newUsr=Users(req.body).save(function(err,data){
if(err) throw err;
console.log(" back from ajax with data :::; " + data);
console.log("step1 cleared");
sess.registered=true;
});
console.log("step2 cleared");
location.window.href = '/index2';
});
た後、私は、登録が成功したら、ユーザーはインデックスページを見てみたいが、私は以下のエラーを取得しています。
ReferenceError: location is not defined
私はこのように、このエラー、ロケーションオブジェクトがノードに存在しないと思うが、やはり私はこの問題を解決する方法を知らない、あなたがres.redirect('/')
を使用することができますNode.jsのでは
'window'ブラウザのJavaScript実行時のグローバルオブジェクトです。そしてノード内でグローバルオブジェクトは 'global'と呼ばれ、場所は –
であり、これを見てください:https://stackoverflow.com/questions/11355366/nodejs-redirect-url – niceman
論理はすべて間違っています。 ajaxリクエストでは、ブラウザのサーバーへのリダイレクトを作成できません。応答データをリダイレクトまたは消費する必要があることをクライアント側のコードに伝える応答オブジェクトを返すことを検討してください – charlietfl