Rah*_*ore 8 json http-post node.js angularjs
我正在为项目使用Angular 1.3和node.js 0.12.2.我正在使用node.js api
$http.post("url", request_data){}
Run Code Online (Sandbox Code Playgroud)
在服务器端使用这个:
console.log(req.body)
Run Code Online (Sandbox Code Playgroud)
但每次的API被调用时,它得空对象{}为request_data,无法获取的问题是什么.我用过body_parser这样的:
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
Run Code Online (Sandbox Code Playgroud)
还尝试在angular $ http中添加内容类型标头:
headers : {'Content-Type': 'applicatio n/x-www-form-urlencoded'}
Run Code Online (Sandbox Code Playgroud)
但没有得到请求数据.
编辑:
Node.js代码:
router.post('/url',function(req,res){
console.log(req.body)
})
Run Code Online (Sandbox Code Playgroud)
注意:Developer Tool的网络选项卡显示正在发送的请求标头中的数据,但node.js服务器未接收到req.body.在POSTman中获取数据是正确的响应.
小智 0
我最好的猜测是您的角度 $http 请求 URL 指向一个错误的端点。
Angularjs
// data to post nodejs server
var _data = {
'message': 'Can I help you?'
};
// angularjs $http post request
$http.post('/api/url', _data).then(function(respond){
// if success
console.log(respond);
}, function(error){
// if an error
console.error(error);
});
Run Code Online (Sandbox Code Playgroud)
Nodejs
// router function
function something(req, res) {
// console.log the request body
console.log(req.body);
// respond JSON object
var _respond = {
'status': 200
};
// expressjs respond a JSON with status code 200
res.status(200).json(_respond);
}
// register route URL
router.post('/api/url', something);
Run Code Online (Sandbox Code Playgroud)
请注意,代码端点 URL 相同:/api/url
因此,作为上述问题中的代码示例,您缺少 /
| 归档时间: |
|
| 查看次数: |
4367 次 |
| 最近记录: |