首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Node JS服务器上接收来自Dart的POST请求时,JSON字符串的值为空

可能是由以下几个原因导致的:

  1. 请求体未正确解析:在Node JS中,需要使用中间件或者解析器来解析请求体的内容。常用的解析器有body-parsermulter。确保在处理请求前,请求体已经正确地被解析。
  2. 请求头未正确设置:在Dart中发送POST请求时,需要设置正确的请求头。确保在Dart代码中设置了正确的Content-Type为application/json
  3. 请求数据格式错误:在Dart中,需要将请求数据以JSON字符串的形式发送到Node JS服务器。请确保在Dart代码中正确地将数据转换为JSON字符串并发送。
  4. 数据字段名称不匹配:请确认在Dart代码中发送的JSON字符串中的字段名称与Node JS服务器端接收的字段名称完全一致。

针对以上问题,可以参考以下解决方案:

  1. 使用body-parser解析请求体:
代码语言:txt
复制
const express = require('express');
const bodyParser = require('body-parser');
const app = express();

app.use(bodyParser.json());

app.post('/api/endpoint', (req, res) => {
  const jsonData = req.body;
  // 处理jsonData
});

app.listen(3000, () => {
  console.log('Server started on port 3000');
});
  1. 在Dart代码中设置正确的请求头:
代码语言:txt
复制
import 'dart:convert';
import 'package:http/http.dart' as http;

void main() async {
  final url = 'http://your-node-server/api/endpoint';
  
  final data = {'key': 'value'};
  final headers = {'Content-Type': 'application/json'};
  
  final response = await http.post(
    Uri.parse(url),
    headers: headers,
    body: jsonEncode(data),
  );
  
  // 处理响应
}

这样,Node JS服务器就能正确接收到来自Dart的POST请求,并且JSON字符串的值不再为空。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AngularDart 4.0 高级-HTTP 客户端 顶

一个模板引用变量, newHeroName, 赋予(click)事件绑定存取输入框. 当用户单击按钮, 单击处理程序传递输入到addHero()方法. 单击处理程序清空输入框....解码JSON 响应数据采用JSON字符串形式。 您必须将该字符串反序列化为对象,您可以通过调用dart:convert库中JSON.decode()方法来执行此操作。...有关解码和编码JSON示例,请参阅Dart库游览dart:convert部分。 码后JSON不会列出英雄。 相反,服务器JSON结果封装到具有数据属性对象中。...这个简单数据服务遵循典型REST指导方针. 它支持一个POST请求 和GET heroes使用了同样端点....如果服务器支持CORS协议,现代浏览器允许来自不同来源服务器XHR请求。 您可以在请求标头中启用用户凭据。 一些服务器不支持CORS但支持旧形式, 只读JSONP.

9.7K10

前端之nodejs总结

我们在编写程序时候,也经常引用其他模块,包括Node内置模块和来自第三方模块。使用模块还可以避免函数名和变量名冲突。...3. http模块 分析Node.js HTTP 服务器: 第一行请求(require)Node.js 自带 http 模块,并且把它赋值给 http 变量。...请求体:当POST请求,数据会存放在请求体里传送到后台,但是因为数据会很大,node不会依次传递完毕,会分段传递,所以我们需要监听两个事件保证数据获取完整性和准确性 data--...对包管理,遵循是commonJS规范(规定了js脱离浏览器端之后一些书写标准) ECMSScript6====ECMAScript2015 ​ commonJS规定,创建或者下载包,每个包里必须要有一个...; }); req.on('end', function(){ //end事件触发后,通过querystring.parse将post解析真正POST请求格式,

1.1K10
  • Flutter Platform Channels(一)

    上,可以使用java.nio.ByteBuffer来接收该消息,以Kotlin例: // Android上接来自Dart二进制消息....iOS上类似; 我并不擅长Swift,欢迎提出改进意见: // os上接来自Dart二进制消息. // 此代码可以添加到FlutterAppDelegate 子类中 // 通常是application...每个消息发送都涉及来自接收器异步回复。 在上面的例子中,对于回传并没有兴趣,但是回复(null)对于Dart Future完成和两个平台回调执行是必要。 线程。...JSONMessageCodec 是用来处理'Json-like'数据(字符串,数字,布尔,null,元素为此类list以及键字符串为此类Map)进。List和Map是异构,可以嵌套。...在编码期间,这些会被转换为JSON字符串,然后使用UTF-8转换为字节。

    4.4K01

    node后端接收到axiospost请求

    node后端接收到axiospost请求???...使用axios发送post请求,传入了Object格式参数,node后端req.body接收到参数,但是网页上抓包检查,发现请求body确实是携带了参数?...首先,我使用中间件,在数据提交到后台,先在控制台打印一下req.body这个对象 node.js 中部分代码 vue中部分代码 显而易见,服务器中req.body请求体中没有任何参数。...开发中,发送请求入参大多是一个对象。发送,如果该请求get请求,就需要对参数进行转化。...2:node中配置body-parser可以获取到除formdata之外数据 3:node中配置connect-multiparty可以所有数据 vue中使用axios发送post请求

    7010

    NodeJS

    我们在编写程序时候,也经常引用其他模块,包括Node内置模块和来自第三方模块。使用模块还可以避免函数名和变量名冲突。...exports 4. http模块 分析Node.js HTTP 服务器: 第一行请求(require)Node.js 自带 http 模块,并且把它赋值给 http 变量。...请求体:当POST请求,数据会存放在请求体里传送到后台,但是因为数据会很大,node不会依次传递完毕,会分段传递,所以我们需要监听两个事件保证数据获取完整性和准确性 data--...对包管理,遵循是commonJS规范(规定了js脱离浏览器端之后一些书写标准) ECMSScript6====ECMAScript2015 commonJS规定,创建或者下载包,每个包里必须要有一个...; req.on('end', function(){ //end事件触发后,通过querystring.parse将post解析真正POST请求格式,然后向客户端返回。

    2.9K30

    Node.js常用功能代码及心得

    node service.js 四、将node.js文件设置开机自动运行且保持后台 注:如果要开机启动多个node.js,就要新建多个.service服务,并且针对配置。...学习心得 用户访问HTML,HTML调用jsjs发出POST请求服务器提交数据,此时服务器node.js文件是如何运行呢?...答:在用户访问HTML页面,页面中js发出POST请求提交数据服务器Node.js已经启动并监听特定端口以接收这些请求。...常用功能代码 获取并本地存储前端传输数据 注:监听前端post方式向后端node指定端口发送数据请求,并将数据接收处理后存储服务器本地文件 //这是一个完整node.js文件 const express.../www/html/a' + '.json'; //将获取到内存信息以json形式保存至本地/var/www/html/a.json try { //服务器指定路径保存文件 fs.writeFileSync

    15210

    Flutter 构建完整应用手册-联网 顶

    从互联网上获取数据 从大多数应用程序获取互联网上数据是必要。 幸运是,Dart和Flutter这类工作提供了工具!...为了让我们生活更轻松,我们可以将http.Response转换为我们自己Dart对象。 创建一个Post类 首先,我们需要创建一个Post类,其中包含来自我们网络请求数据。...有很多方法可以做到这一点,但也许最常见方法是使用Authorization HTTP标头。 添加授权头部信息 http包提供了一种方便方法来请求添加请求头。...'); 2.监听来自服务器消息 现在我们建立了连接,我们可以收听来自服务器消息。...StreamBuilder部件将连接到Stream,并在每次接收到事件使用给定builder函数请求Flutter重建!

    2.6K20

    node Express 框架

    路由 路由决定了由谁响应http请求,通过提取GET和POST请求参数,下面继续扩展程序 PS C:\Users\mingm\Desktop\index\Express> node app.js {...返回body中,将会在req对象上添加一个新对象,该对象body。其中字符串和数组,此对象会包含键值对。...其中可以为字符串和数组(此时设置extendedfalse),其中允许任何类型需要设置extendedlast var express = require('express')...from 表单enctype属性当method属性post时候,enctype提交是from给服务器内容mime类型,即媒体类型, 解释一下form表单enctype三个 httppost...方法,给服务器请求主题类型由 Content-Type 指定,通常一个POST请求是通过HTML表单发送,并返回给服务器返回修改结果,form表单enctype属性是设置上传编码 application

    5.3K20

    【Flutter】HTTP 网络操作 ( 引入 http 插件 | 测试网站 | Get 请求 | Post 请求 | 将响应结果转为 Dart 对象 | Future 异步调用 )

    泛型 Future , 返回类型 Future ; /// 调用 Http Get 方法 , 获取服务器 json 数据 Future<CommonModel...请求对应 Response 响应数据 , 也就是服务器返回给请求数据 ; 四、使用 http 插件进行 Post 请求 ---- 引入 http 插件后 , import 'package:http.../http.dart' as http; 调用 http.get 方法 , 发送 Get 请求 , 会返回一个包括 http.Response 泛型 Future , 返回类型 Future ; /// 调用 Http Post 方法 , 获取服务器 json 数据 Future httpPost() async { //var url = Uri.parse...请求对应 Response 响应数据 , 也就是服务器返回给请求数据 ; 五、将 Get / Post 请求结果 Future 转为 Dart 对象 ---- 将

    1.8K20

    AJAX

    "massage=ajax&username=sfencs") get请求,由于get请求数据url上,但send函数参数不能为,所以 xmlHttp.send(null); 4.监听服务器响应 XMLHttpRequest...xmlHttp.readyState属性中存放在此时状态 通过以上内容,我们可以监听到来自服务器响应 xmlHttp.onreadystatechange= function(){...这里有json字符串json对象两个概念 json字符串就是数据交换传输信息格式,json对象其实是javascript对象子集 数据传输或转换,先将原数据转换成json字符串,使用时再将json...字符串格式 数字 (整数或浮点数) 字符串双引号中) 逻辑 (true 或 false) 数组 (方括号中) 对象 (花括号中,引号用双引) null json字符串引号都为双引号...jsJSON.parse()与JSON.stringify() JSON.parse()将json字符串转换为json对象,JSON.stringify()将json对象转换为json字符串 ajax

    4.2K20

    基于 Flutter + 百度人工智能 开发出一款测颜 App

    'dart:io'; lib/main.dart 中,定义函数 choosePic 来实现选取照片功能: // 点击按钮,选择图片 // 形参中 source 选取照片方式,有两种,分别为...{   // 发起 post 请求   // 参数1:请求URL地址【必选】   // 参数2:通过请求体发送数据【可选】   // 参数3:请求配置项【可选】   var response = await... dio.post("请求地址", data: {/* body请求体 */}, options: new Options());   // 打印服务器返回数据   print(response.data...图片转 base64 字符串 调用测颜 API 期间,需要先把图片转为 base64 字符串,转换过程如下: // 将照片转换为字节数组 var imageBytes = await image.readAsBytes... dio post 请求设置 data 和 options 发送 post 请求期间,如果需要设置 body 请求体和 options 配置项,可以参考如下代码: // 请求URL地址 var

    2.5K30

    基于 Flutter + 百度人工智能 开发出一款测颜 App

    : import 'dart:io'; lib/main.dart 中,定义函数 choosePic 来实现选取照片功能: // 点击按钮,选择图片 // 形参中 source 选取照片方式...await dio.post("请求地址", data: {/* body请求体 */}, options: new Options()); // 打印服务器返回数据 print(response.data...图片转 base64 字符串 调用测颜 API 期间,需要先把图片转为 base64 字符串,转换过程如下: // 将照片转换为字节数组 var imageBytes = await image.readAsBytes... dio post 请求设置 data 和 options 发送 post 请求期间,如果需要设置 body 请求体和 options 配置项,可以参考如下代码: // 请求URL地址 var...适当时机重置 isloading : // 发起请求,获取人脸信息 void getFaceInfo(image) async { // 只要调用这个函数,就立即展示 loading 效果

    2.6K20

    Flutter 网络操作

    在上面的请求中我们直接使用http.post()方法便直接给我们返回了一个泛型ResponseFuture对象。...Flutter中默认已经我们提供了convert库来处理json字符串转换 我们可以使用json.encode()或者json.decode()方法来序列化或者反序列化json字符。...当我们点击RaisedButton就会获取TextField输入内容并且去请求服务器并返回。 对了,在上面的代码中还用到了一个User对象,这是需要自己定义用来存储接口返回信息。...User.dart 可以发现User类里面很简单,只是定义了几个我们需要属性,然后通过 定义fromJson方法把赋值给相应属性(对Json数据格式不熟悉童鞋自己去google看下哈) 那么我们来试一下效果吧...当然使用服务端反悔数据时候需要执行判操作哦 当然,大家也可以在用户点击按钮弹出dialog提示再请求完成去除dialog显示,这个例子比较丑大家明白怎么使用就ok啦。

    3.3K40

    DartVM服务器开发(第二十二天)--RestfulApi封装

    图片来自网络.jpg 1.定义规范 资源 使用JSON形式表现 资源格式 code 表示状态,0表示处理成功,-1表示处理失败 msg 表示消息,对客户端需要说明一些信息,如:成功,请求方法不允许等...data表示数据,返回客户端数据 接口 get获取资源,查询资源 post新建资源,更新资源,查询资源 put更新资源 delete删除资源 URI 请求地址可以附带id等,例如: Get...http://localhost:8080/user/123 查询id123用户,Get http://localhost/user 查询所有用户, Post http://localhost:8080...编码字符串 相反json数据转换为模型也是两步 字符串经过json.decode译码map map转换为模型 所以,我们可以结合jaguar_serializer封装一下Restful...将字符串直接转换为data(T泛型) fromJsonToListData(String Json, [Serializer dataSerializer])将字符串直接转换为List

    91730

    vue使用Axios做ajax请求

    ` 允许服务器发送前,修改请求数据 // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法 // 后面数组中函数必须返回一个字符串,或 ArrayBuffer,或...` 定义 node.js 中 follow 最大重定向数目 // 如果设置0,将不会 follow 任何重定向 maxRedirects: 5, // 默认 // `httpAgent...` 和 `httpsAgent` 分别在 node.js 中用于定义执行 http 和 https 使用自定义代理。...请求响应结构 { // `data` 由服务器提供响应 data: {}, // `status` 来自服务器响应 HTTP 状态码 status: 200, // `statusText...` 来自服务器响应 HTTP 状态信息 statusText: 'OK', // `headers` 服务器响应头 headers: {}, // `config` 是请求提供配置信息

    2K120

    Infura 以太坊 API 入门教程

    本教程中,我们介绍使用每个接口原因,以及将通过Node.js示例介绍两种访问以太坊API方法。...看一个示例 在此示例中,我们将编写一个使用Rinkeby节点Node.js程序,并使用eth_getBlockByNumber将RPC请求发送到Infura以获取最新区块数据。...是一个POST请求 headers : 调用需要请求头 我们已经**var headers**中标识了这些内容!...当我们使用console.log(obj.result.number),会得到相同高亮显示十六进制(最好再次检查一下期望从代码中得到): ?...hex是我们在上一步中找到十六进制代码,而16表示hex是基数16十六进制(如果未指定,则任何以0x开头字符串都将被视为十六进制,因此基数16;否则基数10): const dotenv =

    2.4K20

    解决:node后端接收到axiospost请求体竟为

    前言: 在做项目,你们是否会遇到这样一个问题: 使用axios发送post请求,传入了Object格式参数,node后端req.body接收到参数,但是网页上抓包检查,发现请求body...今天,我写vue+node项目提交登录信息(username,password)到后端,就遇到了这个小bug,花了我一个半小时时间,才搞出了个所以然来。...所以我之前发过去obj对象,被axios自动转化为了json字符串 但是到此为止,感觉还是没有任何环节有致命问题呀?将JSON字符串格式参数发给服务器,确实应该也没什么问题呀?...于是我就重新回到服务器配置代码上来,显然,应该是服务器无法解析request请求请求体body中JSON字符串数据。...开发中,发送请求入参大多是一个对象。发送,如果该请求get请求,就需要对参数进行转化。

    7.9K62
    领券