ajax+express 如何实现通信
发布于 8 年前 作者 myesn 14370 次浏览 来自 问答

前台js(film.ejs): $.ajax({ url:’/film’, type:‘post’, data:{data:1}, dataType:‘json’, success:function(data){ console.log(data); }, error:function(err){ console.log(err); }
}); 路由js(film.js):

router.post(’/film’,function(req,res){
res.write({‘test’:true},‘utf-8’); res.end(); });

app.js: var film = require(’./routes/film’); app.use(’/film’,film);

我想的是app.use这个中是包括了get和post请求的,然后我路由中定义好接收post请求的方法,然后前台来请求该路径, 但ajax请求报了404错误,有朋友能指点下嘛?

14 回复

试试看 app.use(’/’,film); 你的路径可能重复定义了

@evercx 不行,卵的

能把代码格式化么?

bodyparser加了么?

@i5ting express -e 生成的项目,我看到它自己有加上 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); 我的请求404 ,我觉得暂时和这个没关系吧

@i5ting 这么几行代码,不用格式化也能看清楚吧(ps:不会用这个编辑器,没找到放代码块的)

@i5ting 如果阁下知道解决方案的话,麻烦给出一套代码,我自己研究,多谢!

麻烦知道的朋友直接贴前端+后端的代码实例,这样避免口舌之争,多谢

我这里的代码 亲测可行 ajax:

	$.ajax({
        	type:'POST',
        	url:'/film',
        	data:{data:1},
        	dataType:'json',
        	success:function(data){
            	console.log(data);
		  }
	});

film.js:

	var express = require('express');
	var router = express.Router();
	router.post('/film', function(req, res, next) {
		console.log(req.body);
		res.json({msg:'respond with a resource'});
		res.end();
		});
	module.exports = router;

app.js:

	var express = require('express');
	var film = require('./routes/film');
	var app = express();
	app.use('/', film);

ajax的url写成/film/film试试

@myesn 我不赞成你的态度,帖子是给人读的,和代码一样,不会用不是理由吧,基本markdown都不会么?

@myesn 自己看https://github.com/i5ting/node-http 这里的post有3种,自己找吧

@i5ting (^__^) 嘻嘻……

回到顶部