一,get方法是nodejs用来接收数据常用的方法,通过url传递
参数可以在地址看到(登陆的时候不安全),并且由于地址栏对参数长度的控制,因此get方法不能做大数据的提交
在页面发送数据
$.get("../action/zxly.js", {nc: nc, qq: qq, em: em, zt: zt, nr: nr}, function (result) { console.log(result.args); if (result.args=="ok") { //接收js返回的数据 alert("留言成功!") } })
在js中接收数据
router.get("/action/zxly.js?",function(req,res) { //req.query:获取URL的查询参数串 var par=req.query; res.send({"args":result}); //向页面发送数据 })
二,post方法通过body来获得参数需要 加载相应的模块
安装命令:
npm install body-parser
在app.js中添加相应的模块
var bodyParser = require(‘body-parser‘);//加载此模块在body中去获取参数 app.use(bodyParser.urlencoded({extended:false}));//参数方式是字符串
表单提交:
<form action="<%=basePath%>action/tedst.js" method="post"> 用户名:<input type="text" name="username" /> <br/> 密码:<input type="password" name="pwd"/><br/> <input type="submit" value="提交"/> </form>
js接收:
如果做参数的安全提交例如用户名,或者大量的数据提交就需要用到post方法
post方法只能表单提交,不能通过地址栏访问。
router.post("/action/tedst.js",function(req,res,next)
res.send("----post提交成功"+req.body.username+" "+ req.body.pwd); next(); })
三,getjson跨域接收请求
js中返回数据:
router.get("/action/Testgetjson",function(req,res,next){ var m=req.query.jsoncallback; res.write(m+"({\"key\":\"abcdef\"})");//跨域返回的数据格式 // res.write("{\"key\":\"abcdef\"}"); //同域返回数据的格式 res.end(); })
页面中发送请求并接收返回的参数
function test(){ $.getJSON("http://localhost:3001/action/Testgetjson?jsoncallback=?", function(data){ $("span").text(data.key); }) }