[英]JQuery Ajax post request with node.js and express
I was trying to make AJAX post request with JQuery to my Node.JS server in Node.JS and Express, but it doesn't works! 我试图使用JQuery向我的Node.JS和Express中的Node.JS服务器发出AJAX post请求,但它不起作用!
var express = require('express')
var app = express();
app.listen(8888);
app.configure(function(){
app.use(express.bodyParser());
app.set('views',__dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public'));
app.use(express.cookieParser());
app.use(app.router);
});
app.get('/', function (req, res){
res.render('ajax.ejs');
});
app.post('/ajax', express.bodyParser(), function (req, res){
console.log(req);
console.log('req received');
res.redirect('/');
});
And this is the ajax.ejs
: 这是
ajax.ejs
:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$('#enter').click(function(){
$.ajax({
url: '/ajax',
type: 'POST',
cache: false,
data: { field1: 1, field2: 2 },
success: function(data){
alert('Success!')
}
, error: function(jqXHR, textStatus, err){
alert('text status '+textStatus+', err '+err)
}
})
});
</script>
</head>
<body>
<form>
<input type="button" id="enter" value="Enter">
</form>
</body>
</html>
When the ajax.ejs
is loaded, there isn't any output in the console, so, the post request didn't work. 加载
ajax.ejs
,控制台中没有任何输出,因此,post请求不起作用。 What can I do? 我能做什么?
Thanks advance! 谢谢提前!
I found your problem. 我找到了你的问题。 You need to move your script from your head to your body (after the form tag):
您需要将脚本从头部移动到您的身体(在表单标记之后):
...
</form>
<script type="text/javascript">
$('#enter').click(function(){
...
</script>
</body>
The below code works as per the new releases. 以下代码按照新版本进行操作。
server.js server.js
var express = require('express')
var app = express();
var bodyparser = require('body-parser');
var urlencodedparser = bodyparser.urlencoded({extended:false})
app.set('views',__dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public'));
app.use(express.cookieParser());
app.get('/', function (req, res){
res.render('ajax.ejs');
});
app.post('/ajax', urlencodedparser, function (req, res){
console.log(req);
console.log('req received');
res.redirect('/');
});
app.listen(8888);
ajax.ejs ajax.ejs
<html>
<head>
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
</head>
<body>
<form>
<input type="button" id="enter" value="Enter">
<script type="text/javascript">
$('#enter').click(function(){
$.ajax({
url: '/ajax',
type: 'POST',
cache: false,
data: { field1: 1, field2: 2 },
success: function(data){
alert('Success!')
}
, error: function(jqXHR, textStatus, err){
alert('text status '+textStatus+', err '+err)
}
})
});
</script>
</form>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.