使用JQuery的Express和ajax发布
Express似乎没有响应我的ajax请求。当我在chrome inspector的“网络”选项卡中查看post请求状态时,它似乎已挂起很长一段时间,然后失败。这是我的快递代码:使用JQuery的Express和ajax发布,jquery,ajax,node.js,express,Jquery,Ajax,Node.js,Express,Express似乎没有响应我的ajax请求。当我在chrome inspector的“网络”选项卡中查看post请求状态时,它似乎已挂起很长一段时间,然后失败。这是我的快递代码: app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(exp
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
})
success函数从未被调用,req.body的控制台日志似乎也不起作用
谢谢你的帮助 正如您在评论中提到的,您得到的状态代码是0 检查以确保您的服务器可以从测试位置访问,并且您向其发出请求的URL实际上指向您要向其发送请求的服务器 换句话说,您可能需要修复这条线
url:"test.html",
正如您在评论中提到的,您将返回状态代码0 检查以确保您的服务器可以从测试位置访问,并且您向其发出请求的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',
...
});
希望有帮助 在Express中不能在路由上使用.html扩展名,因为这会使它认为它在寻找静态资源。改用漂亮的URL
// Express code...
app.post('test', function(req, res, next){
// Do stuff to process POST request
});
// AJAX code...
$.ajax({
url: 'test',
...
});
希望有帮助 当请求最终失败时,您会得到什么HTTP状态码?控制台出现故障时是否有任何错误消息?对不起,我对这一点很陌生,不必担心自己是新手。您已经提到了网络选项卡。您应该能够查看其中的请求,在请求完成时确定HTTP状态代码。控制台与运行代码时console.log语句打印到的位置相同。未捕获的异常通常会打印到那里。失败时似乎不会显示任何代码,尽管我在ajax请求中实现了一个错误处理程序,并发送了0的http代码。您的初始化是错误的-您已将静态文件服务器路由放在post rest接收器之前。您的/test.html将首先尝试静态文件,并在到达rest接收器之前失败。你需要在app.post之后移动express.static当请求最终失败时,你会得到什么HTTP状态码?控制台出现故障时是否有任何错误消息?对不起,我对这一点很陌生,不必担心自己是新手。您已经提到了网络选项卡。您应该能够查看其中的请求,在请求完成时确定HTTP状态代码。控制台与运行代码时console.log语句打印到的位置相同。未捕获的异常通常会打印到那里。失败时似乎不会显示任何代码,尽管我在ajax请求中实现了一个错误处理程序,并发送了0的http代码。您的初始化是错误的-您已将静态文件服务器路由放在post rest接收器之前。您的/test.html将首先尝试静态文件,并在到达rest接收器之前失败。你需要在app.post之后移动express.static。我不认为这是问题所在,因为即使我将其更改为完整IP地址,它仍然不起作用。我不认为这是问题所在,因为即使我将其更改为完整IP地址,它仍然不起作用