我几乎阅读了我能找到的所有帖子,而且他们没有解决我的问题。
我有:
var cors = require('./cors.js');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
'Content-Type': 'application/json'
然而我的路线的请求对象仍然是空的。
如果我通过参数发送数据,它可以正常工作,但我真的更喜欢使用body。
请求代码:
data = {
"url": "./text file name.txt",
"body": "test content"
};
$.ajax({
'type': 'POST',
'Content-Type': 'application/json',
'url': 'http://localhost:3000/save',
'body': JSON.stringify(data),
'success': function( response ){
console.log( 'SUCCESS >>> ', response);
},
'error': function(error){
console.log( 'ERROR >>> ', error.responseText );
}
});
路线:
app.post('/save', function(request, response) {
console.log( 'Save Req >> ', request.url, request.body, request.query );
// outputs: "Save Req >> /save {} {}"
});
CORS:(cors.js)
module.exports = function() {
return function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Headers', 'Content-Type');
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
next();
};
}
答案 0 :(得分:1)
根据$ .ajax,正在data
传递正文中的数据,而不是body
。喜欢这个
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});