您的位置 首页 php

HTTP的content-type不同导致数据获取问题

今天在前后端对接接口的时候,前端使用 POST 请求发送 t[0][0] = 1, t[0][1] = 2 的参数过来,然后我这边获取到的却是字符串的类型。

 t[0][0] = "1"

t[0][1] = "2"

t = [["1"], ["2"]];  

问题排查

首先我要排查是否是我这边将二维数组转字符串时出错导致的,所以我这边直接使用

 php -r "var_dump(json_encode([[1], [2]]));"

t = [[1], [2]];  

结果显示是和我转字符串没有关系。然后我直接打印传递过来的参数,确实是 [[“1”], [“2”]] 这个字符串。所以可以确定的是前端传过来的确实是字符串。

知识储备

因为之前有看过 图解 HTTP 所以我记得 content-type 这个字段不同会导致 HTTP 会用不同的方式传递参数。

  • application/x-www-form-urlencoded

  • multipart/form-data

  • application/json

总结

从上面的三种请求中,我们可以知道。只有使用 application/json 这种形式我们才会拿到对应的类型值,而另外两种都是字符串的形式。

为什么会存在这种问题呢?这里其实是因为第一,第二种以字符串的形式传递过去,但是却没有类型规则限定导致拿到对应字段却无法知道其数据格式,因为拿到的都是字符格式的。然而使用 json 却不同, json 自身格式限制了字符串都要加上双引号,所以没有双引号的我们就知道是数字类型了。

文章来源:智云一二三科技

文章标题:HTTP的content-type不同导致数据获取问题

文章地址:https://www.zhihuclub.com/78855.shtml

关于作者: 智云科技

热门文章

网站地图