Javascript 如何使用客户端作为put请求的一部分发送的express访问服务器端的数据
下面是我的http put请求Javascript 如何使用客户端作为put请求的一部分发送的express访问服务器端的数据,javascript,node.js,angular,express,Javascript,Node.js,Angular,Express,下面是我的http put请求 postRequest(data) : Observable<any>{ return this.http.post("http://localhost:5050",data).pipe(map(this.dataHandler)); } 我想检索在express中作为服务器端put请求的一部分从客户端发送的数据。 请帮忙。提前感谢。首先,如果要执行put请求,应使用put而不是post this.http.put(...) 然后,在服
postRequest(data) : Observable<any>{
return this.http.post("http://localhost:5050",data).pipe(map(this.dataHandler));
}
我想检索在express中作为服务器端put请求的一部分从客户端发送的数据。
请帮忙。提前感谢。首先,如果要执行
put
请求,应使用put
而不是post
this.http.put(...)
然后,在服务器端,您可以使用主体解析器
解析请求数据,并在中间件上使用它
const bodyParser = require('body-parser');
/* ... */
app.use(bodyParser.json()); // If you're sending a JSON payload
app.use(bodyParser.urlencoded({ extended: true })); // application/x-www-form-urlencoded
app.use(bodyParser.text()); // You're sending text/plain
/* ... */
app.put("/",function(request, response){
console.log(request.body); // Data is inside body
response.send("Put request received successfully");
});
您需要发送:Content-Type:application/json
forbodyParser.json()
才能工作,没有它,您的json负载将无法解析,或者application/x-www-form-urlencoded
forbodyParser.urlencoded()
bodyParser对象公开各种工厂来创建中间件。
所有中间件都将使用解析的
内容类型请求标头与类型选项匹配时的正文,或
空对象({}),如果没有要分析的主体,则为内容类型
不匹配,或发生错误
在您的特定情况下,您将发送内容类型:text/plain
,因此只需使用:
app.use(bodyParser.text());
什么是数据?JSON负载,表单数据?你能把请求的屏幕截图放在浏览器开发控制台上吗?数据只是传递给本地数据的一个数值:5 this:ApiServiceService http:http{{u backend:XHRBackend,{u defaultOptions:BaseRequestOptions}proto:Object Closure(./src/app/api service.service.ts)Window GlobalStill,显示请求,根据内容类型的不同,解析在服务器上会有所不同。我只能以json格式或作为url的一部分发送数据?不,您可以任意选择,每种类型的解析都不同。这就是为什么我要你告诉我你是如何发送的。因此,请在开发者控制台上显示请求,或者作为开发者控制台上的请求,转到
xhr
,您将看到请求。以下是请求:curl'-X OPTIONS-H'访问控制请求方法:PUT'-H'来源:'-H'接受编码:gzip,deflate,br'-H'接受语言:en-US,en;q=0.9'-H'用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/66.0.3359.181 Safari/537.36'-H'接受:/'-H'连接:保持活动状态'--压缩选项是什么,没有数据被发送,显示PUT
请求。
app.use(bodyParser.text());