前后端参数传递那点事

  • 传递格式
    • 在ajax中的参数传递格式如下
                            data: {
                                Member: that.formMember,
                                '_csrf-backend': "getRequest()->getCsrfToken();?>",
                                cacheKey: ""
                            },

其中 that.formMember为一个对象
可以看出:嵌套的对象会转换成了数组的格式,索引数组的形式也可以存在
一个键如果没有对应值,则没有数据被传递
在前端页面中采用的数字类型将被转化成string,bool类型被转换成string
演示如下:

    test:1,
    test1:'1',
    test2:'',
    test3:null,
    test4:true,

Member[test]:1
Member[test1]:1
Member[test2]:
Member[test3]:
Member[test4]:true

formData中的数据如下:

Member[m_photo]:
Member[m_name]:王会南
Member[m_gender]:woman
Member[m_birthday]:19930428
Member[m_nation]:汉族
Member[m_native][]:130000
Member[m_native][]:130400
Member[m_native][]:130406
Member[m_join_date]:20180120
Member[m_id_card]:党员35

现在来看后台接收的格式:
可以看出Member为数组,Member中的m_photo接收到了空字符串,m_native为索引数组
后台接收数据如下:

array (size=3)
  'Member' => 
    array (size=25)
      'm_photo' => string '' (length=0)
      'm_name' => string '王会南' (length=9)
      'm_gender' => string 'woman' (length=5)
      'm_birthday' => string '19930428' (length=8)
      'm_nation' => string '汉族' (length=6)
      'm_native' => 
        array (size=3)
          0 => string '130000' (length=6)
          1 => string '130400' (length=6)
          2 => string '130406' (length=6)
  • 总结

  1. 只要出现在对象中键都将会被传递,没有值将会被作为空字符串传递
  2. 在页面往服务器的传参过程中,数字与bool类型都将被作为字符串传递
  3. 嵌套的对象将会被作为数组形式传递

你可能感兴趣的:(前后端参数传递那点事)