ajax+express 如何实现通信
 发布于 9 年前  作者 myesn  14756 次预览  最后一次回复是 9 年前  来自 问答 

前台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 回复
evercx

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

i5ting

能把代码格式化么?

i5ting

bodyparser加了么?

myesn

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

myesn

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

myesn

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

myesn

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

evercx

我这里的代码 亲测可行 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);
jiangli373

ajax的url写成/film/film试试

i5ting

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

i5ting

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

myesn

@i5ting (^__^) 嘻嘻……