Express和ajax使用JQuery发布

Express似乎没有回应我的ajax请求。 当我在chrome检查器的networking选项卡中查看后,请求状态显示为长时间未决,然后失败。 这是我的快递代码:

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的控制台日志似乎也不工作。

谢谢您的帮助!

正如你在评论中提到的那样,你得到了一个0的状态​​代码。

HTTP状态码0是否有任何意义?

检查以确保您的服务器可以从您正在testing的位置访问,并且您提出请求的URL实际上指向要发送请求的服务器。

换句话说,你可能需要修复这一行

 url:"test.html", 

Express中的路由不能使用.html扩展名,因为这使得它寻找一个静态资源。 使用“漂亮的URL”来代替。

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

希望有所帮助!