2012-12-02 33 views
1

快递AJAX发布似乎没有被回应我的Ajax请求。当我在铬检查器的网络选项卡中查看后,发布请求状态似乎很长时间处于待定状态,然后失败。这是我的快件代码:Express和使用JQuery

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的控制台日志似乎没有任何工作。

感谢您的帮助!

+2

当请求最终失败时,你得到了什么HTTP状态码?失败时控制台中是否有错误信息? –

+0

如何检查? – user1870919

+0

对不起,我是这个新手 – user1870919

回答

2

正如你在评论中提到的,你得到0回的状态代码。

Does an HTTP Status code of 0 have any meaning?

检查以确保你的服务器是从你那里测试和网址到达您提出请求,以实际指向您要发送请求到服务器。

换句话说,你可能需要修改该行

url:"test.html", 
+0

之后移动express.static我不认为这是问题所在,因为即使我将其更改为完整的IP地址,它仍然不起作用 – user1870919

2

不能在快速的路线上使用.html扩展,这样做会认为它寻找一个静态资源。改用“漂亮的网址”。

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

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

希望有帮助!