【发布时间】:2017-09-21 09:13:05
【问题描述】:
重定向函数在提交表单时被调用,并且由于某种原因数据对象没有被携带到函数中并开始在 ajax 发布请求上传递。到调用数据对象时,它具有 6 个属性。快递的邮寄路线有效并且成功,但我无法获取要发送的数据对象。
感谢任何帮助,谢谢。
这部分是express代码,下面是app.js
const bodyParser = require('body-parser');
const jsonParser = bodyParser.json({ type: 'application/json' });
hbs.registerPartials(__dirname + '/views/partials');
app.set('view engine', 'hbs');
app.use(express.static(__dirname + '/views'));
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.post('/Summary',jsonParser, function (req, res) {
console.log("post"+ req.body + ' h');
res.send(req.body);
});
//////// App.js 代码 /////
var data = {roommate:1};
function redirect(){
var data=JSON.stringify(data);
console.log(data +' f');
$.ajax({
type: 'POST',
data: data,
contentType: 'application/json',
url: 'http://localhost:3000/Summary',
success: function(data) {
console.log('success');
console.log(JSON.stringify(data + 'h'));
}
});
};
【问题讨论】:
-
你有没有尝试发送
x-www-form-urlencoded而不是JSON字符串到服务器 -
我没有做表格,因为我必须在提交之前将每个值附加到一个对象
-
jQuery 接受对象,默认情况下会将它们转换为
x-www-form-urlencoded,这可能也是您的 bodyParser 所期望的,您唯一需要做的就是不将对象字符串化,而不是设置contentType 标头 -
我做了这些更改,但仍然没有得到我需要的东西 =/
标签: javascript jquery express