我想知道为什么在/:参数中发布一个简单的
JSON字符串来解析它是如此困难.我遵循了许多例子,但没有发现任何具体的东西.
我在前端有以下代码.
$("#btnDoTest").click(function() { var jData = { hello: "world" }; var request = $.ajax({ url: "http://localhost:8081/j/",async: false,type: "POST",data: JSON.stringify(jData),contentType: "application/javascript",dataType: "json" }); request.success(function(result) { console.log(result); }); request.fail(function(jqXHR,textStatus) { alert("Request Failed: " + textStatus); }); });
如果我在j /之后连接param,我在发送简单文本方面是成功的.但是我想要发送的是像这样的对象{hello:“world”}并在nodeJS中重新构建它并使用它.
– 编辑:
This is my nodejs file /* the below function is from restifylib/response.js */ var restify = require("restify"); /* create the restify server */ var server = restify.createServer({ }); server.use(restify.bodyParser({ mapParams: true })); server.use( function crossOrigin(req,res,next){ res.header("Access-Control-Allow-Origin","*"); res.header("Access-Control-Allow-Headers","X-Requested-With"); return next(); } ); server.post('/j/',function (req,next) { //res.send(201,"REceived body: "+JSON.stringify(req.params)); res.send(201,"REceived body: "+JSON.stringify(req.params)); return next(); }); var port = 8081; server.listen(port); console.log("Server listening on port " +port)
任何帮助将不胜感激.
0X
解决方法
我终于搞定了.
– 前端代码
$("#btnDoTest").click(function() { var request = $.ajax({ url: "http://localhost:3000/j",data: { blob: {wob:"1",job:"2",ar:[1,2,{a:'b'}]} },contentType: "application/x-www-form-urlencoded",//This is what made the difference. dataType: "json",}); request.success(function(result) { console.log(result); }); request.fail(function(jqXHR,textStatus) { alert("Request Failed: " + textStatus); }); });
NodeJs服务
/* the below function is from restifylib/response.js */ var restify = require("restify"); /* create the restify server */ var server = restify.createServer({ }); server.use(restify.bodyParser()); server.use(restify.CORS()); server.post('/j/',function(req,next) { res.header("Access-Control-Allow-Origin","X-Requested-With"); // req.params == data on jquery ajax request. res.send(200,JSON.stringify(req.params)); console.log(req.params.blob.ar[2].a) res.end(); return next(); }); var port = 3000; server.listen(port); console.log("Server listening on port " + port)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。