如何从 Nodejs 中的 post 请求中获取正文
How to get body from a post request in Nodejs?
我正在使用post方法将数据id
发送到我的节点服务器。但是req.body
在我的节点文件中未定义
我的索引.html如下所示:
<html ng-app="IMDBApp">
<body>
<div ng-controller="testController as movieFetcher" class="container">
<input type="text" ng-model="movieFetcher.movieId"></input>
<button ng-click="movieFetcher.sendId(movieFetcher.movieId)">Fetch Details</button>
</div>
</body>
我的角度控制器看起来像这样:
angular.module('testApp', []).controller('testController',['$http',function($http){
this.movieId = 197;
this.sendId = function(id){
$http.post('/test',id).success(function(response){
// does something on response
});
}; }]);
我的节点服务器看起来像:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.text());
app.listen(8080);
app.post('/test', function(req, res) {
var i = req.body;
var url = 'http://www.imdb.com/title/tt' + i + '/';
// i shows as undefined
console.log("i is",i,"url is",url);
res.send(url);
});
默认情况下$http.post
发送的内容类型为application/json
,因为您使用的是text/plain
因此您需要显式发送内容类型text/plain
。
$http({
method: 'POST',
url: '/test',
headers: {
'Content-Type': 'text/plain'
},
data: id
})
从
$http Docs
设置 HTTP 标头$http服务将自动向所有请求添加某些 HTTP 标头。可以通过访问 $httpProvider.defaults.headers 配置对象来完全配置这些默认值,该对象当前包含以下默认配置:
$httpProvider.defaults.headers.common (headers that are common for all requests): Accept: application/json, text/plain, * / *
$httpProvider.defaults.headers.post: (header defaults for POST requests) Content-Type: application/json
$httpProvider.defaults.headers.put (header defaults for PUT requests) Content-Type: application/json
将您的server.js
更新为
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static(__dirname + '/public'));
而不是
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.text());
那你应该没事了。
将传入的 JSON 转换为字符串, var 体 = ''; req.on('data', function (data) { 正文 += 数据; }); req.on('end', function () { var params = JSON.parse(body); 回调函数 回调; });
然后像 body.id 一样读取数据
- D3 Json请求获取XmlHttpRequest错误:访问控制允许原点不允许原点为null
- 找不到Angular+Ionic Post请求获取404
- 如何从 ajax 请求获取数据响应
- 在Sencha touch 2.0中使用Ajax请求获取cookie
- 在 Python 中使用请求获取页面但不使用源代码,为什么?如何获取源代码
- 从javascript Http请求获取Java List
- Django View 无法使用请求获取文件.来自 ajax 表单的文件提交
- GiantBomb API 请求获取 HTML 而不是 JSON,Nodejs 请求模块
- 使用 ajax 请求获取上一个和下一个对象
- 从AJAX请求获取javascript变量的数字时遇到问题
- JQuery请求获取超过10个RSS提要
- XEP-0133:管理员请求获取所有在线用户列表
- 通过javascript通过ajax请求获取页面的完整html源代码
- NodeJS/Angular编辑请求获取400错误
- 从NodeJS请求获取主机
- 从http请求获取包信息
- 使用请求获取API结果,并集成到Hubot响应中
- 通过jQuery ajax请求获取数据
- Fcbkcomplete用ajax请求获取数据
- Node.js请求获取一个VAST标签