1

Express が私の ajax リクエストに応答していないようです。Chrome インスペクタのネットワーク タブでポスト リクエストのステータスを確認すると、長い間保留されているように見えて失敗します。これは私のエクスプレスコードです:

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.cookieParser());
  app.use(express.session({secret: 'fasfasasasfasfa'}));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(express.session());
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(path.join(__dirname, 'public')));
});

app.post('/test.html', function (req,res) {
  console.log(req.body);
  res.send({ some: JSON.stringify({response:'json' })});
  res.end();
})

そして、ここに私のjQueryコードがあります:

working = function() {
    console.log("works")
}

$.ajax({
    url:"test.html",
    data: {'name':'hello'},
    type: "POST",
    success: working
  })    

成功関数は呼び出されず、req.body のコンソール ログも機能していないようです。

助けてくれてありがとう!

4

2 に答える 2

2

Express のルートで拡張機能を使用することはできません.html。これにより、静的リソースを探していると見なされるためです。代わりに「プリティ URL」を使用してください。

// Express code...
app.post('test', function(req, res, next){
  // Do stuff to process POST request
});

// AJAX code...
$.ajax({
  url: 'test',
  ...
});

それが役立つことを願っています!

于 2012-12-03T00:21:19.217 に答える
2

コメントで述べたように、ステータス コード 0 が返されます。

HTTP ステータス コード 0 には意味がありますか?

テストしている場所からサーバーに到達できること、およびリクエストを送信する URL が実際にリクエストを送信するサーバーを指していることを確認してください。

つまり、おそらくこの行を修正する必要があります

url:"test.html",
于 2012-12-02T22:02:39.847 に答える