为了模拟向后台发送请求,需要搭建一个web工程的demo,使用nodejs 的express 模拟web工程
var express = require("express"); var http = require("http"); var app = express(); ////////////////////// 获取post过来的数据 ///////////////////////////// var bodyParser = require("body-parser"); app.use(bodyParser.urlencoded({ extended: false })); ////////////////////// 设置模板 ///////////////////////////// var ejs = require("ejs"); //使用set方法,为系统变量“views”和“view engine”指定值。 app.set("views", __dirname + "/views"); // 指定模板文件的后缀名为html app.set('view engine', 'html'); // 运行hbs模块 app.engine('html', ejs.__express); ////////////////////// 利用文件来拆分路由的规模 ///////////////////////////// var router = express.Router(); var router1 = require('./routes/router1'); var router2 = require('./routes/router2'); var router3 = require('./routes/router3'); var testRouter = require('./routes/test/test'); var sqhIndex = require('./routes/sqh/sqhIndex'); var klwIndex = require('./routes/klw/klwIndex'); //设置web工程的根目录 app.use(express.static(__dirname + '/')); // 允许跨域 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By",' 3.2.1') if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/ else next(); }); app.use('/router1', router1); app.use('/router2', router2); app.use('/router3', router3); app.use('/test', testRouter); app.use('/sqh', sqhIndex); app.use('/klw', klwIndex); http.createServer(app).listen(3000);
注意:需要将允许跨域的请求代码放在所有的路由前面,因为请求被express接受到的时候,拦截的顺序是根据自己写的代码路由顺序决定的,一旦满足拦截条件,如果不执行next()方法,则就不会继续把请求发送给下一个路由拦截器。