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', ... });
希望有所帮助!