0

クライアント側のコード:

  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 を実行すると、成功アラートがポップアップ表示されます。

助けてください/

アップデート:

次の行をコメントアウトすると、適切に応答が返されます。

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

1 に答える 1

3

古いスタイルの $.ajax を使用しています。http://api.jquery.com/jQuery.ajax/を読む

それ以外の場合は、post/get メソッドはありません。

エクスプレスに問題があると思われる場合は、テスト用に端末から新しいクリアアプリを作成してください: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' });
});
于 2013-03-13T10:25:02.997 に答える