跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么我的表单 post 了一个数字,后台接收到之后变成了 string?
未分類
21 5 月 2020

为什么我的表单 post 了一个数字,后台接收到之后变成了 string?

为什么我的表单 post 了一个数字,后台接收到之后变成了 string?

資深大佬 : Waihinchan 1

html 是这么个写法:

<form action="gamepage" method="post" >     Player name: <input type="text" name=player_id value="player1"><br>     Room name: <input type="text" name=room_id value="room1"><br>     Player amount: <input type="number" name=player_amount value=4><br>     <input type="submit" value="提交">     </form> 

第三个 player_amount 那里我应该是设置了数字的

服务器用 nodejs 接收这个 post 请求用的 bodyParser

app.post('/gamepage',function(req,res){      console.log('gamepage request');     console.log(typeof(req.body.player_amount));}); 

然后 console.log 了一下结果是这样的: string { player_id: ‘player1’, room_id: ‘room1’, player_amount: ‘4’ }

所以问题发生在我的表单提交的时候没有设置对格式还是我用错了中间件呢?初学服务器后台这些,对数据的格式也不是很熟悉,折腾了好久。 小弟先感谢各位老哥了。

大佬有話說 (9)

  • 資深大佬 : meso5533

    你看一下开发者工具里面的网络请求,看一下这个 POST 请求的 body 长什么样,你就知道上传的请参数根本没区分 string 还是 number

  • 資深大佬 : wangxiaoaer

    HTTP 协议传数据的时候可不管你什么格式的,你需要后台自己解析,当然有些通用的比如文件,json 等类型你采用的 web 框架(servlet node 等)可能会帮你解析。

  • 資深大佬 : baiyi

    post 的数据在 body 里,通过 HTTP 协议的 Content-Type 指定编码格式,如果你不设置 form 的 enctype 属性,默认是 application/x-www-form-urlencoded 编码。如果你想要精确类型的编码,一种常见的选择是使用 application/json 。

  • 主 資深大佬 : Waihinchan

    @meso5533 我之前直接用 xmlhttprequest 看过是正常的 但是我后来用表单来发送请求就变了 但是看这结论应该是我解析过程出现了问题 我再去试试 谢谢啦

  • 主 資深大佬 : Waihinchan

    @baiyi 我晓得~现在的情况是我后台的确能解析成我想要的 但是其中一个字段就变成了一个字符 按道理应该是数字来的 我之前试过直接发送一个对象解析是 OK 的 所以还是疑惑是不是我的表单出了问题

  • 資深大佬 : zachlhb

    表单提交的所有数据都是 string,input 上的 type 为 number 只是用来限制输入框的输入类型,并不代表提交到后台就是 int 类型,你要 int 类型后台接收到要自己转换一下

  • 主 資深大佬 : Waihinchan

    @zachlhb 好的!明白了!那我去做个类型转换好了

  • 主 資深大佬 : Waihinchan

    emmm 所以现在补充说明情况是 我能解析成 json 但是有一个数字的字段变成了 string 根据 6 的老哥说的是表单发送都是 string 所以我得手动转换
    或者说有没有别的方法呢…?

  • 資深大佬 : crella

    浏览器以 json 形式上传,服务器以 json 形式解析。
    可以看看 json 的序列化和反序列化是怎么做的。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具