**~~**最近学习用jq完成数据库node.js之间传输数据,经常搞不清如何正确的去书写客户端(HTML页面)传输到后台(node.js)data属性正确的写法,就总结了一下。

通常上在HTML页面上书写ajax时,会需要将页面上获得数据传输到后台处理,于是对于如何正确传输data数据就非常重要。主要是方法得当,其实有很多方法都可以。
一、先了解一下ajax请求传递data数据的三种格式
1.json对象格式(post和get):

   {"loginpwd":”woxihuan“},

这种方式需要指定一下 datatype:“JSON”,

 $.ajax({
    type: "post",
      url: "http://localhost:8080/toPwd",
      data: {"loginpwd":"woxihuan"},
      datatype:"JSON",// //指定响应的data数据类型为JSON对象。
      success: function (data) ,//这个data是服务器端
      //传输给客户端的,和这篇文章无关,这个data只是一个参数的名字
      		 $("#msg").html(data.msg);
      }
  });
  • dataType:“json”
    用来指定服务器返回的data数据类型必须是JSON类型。然后jQuery就会把后端返回的json字符串尝试通过JSON.parse()解析为js对象。
  • 如果不指定dataType,jQuery 将自动根据 HTTP 包的 MIME信息来智能判断,若MIME信息的值为JSON,则jQuery会自动的把data数据转换成JS对象的json,接着Script把data传递给回调函数进行JS的脚本操作。

2、标准参数模式(post和get):

   data:'loginname=haer & loginpwd=520',
   dataType:"json", 
  • $(“#login”).serialize() 就是把表单的数据拼成这个格式(key1 = value2&key2 =
    value2)的字符串,然后放在Http请求体中传给后台。

3.json字符串(只用于post请求,这种方式不能用于 Get请求):

	//对象转字符串方法
    "{"loginpwd":”woxihuan“}“---JSON对象格式的字符串
    JSON.stringify({"loginpwd":”woxihuan“},----把JSON对象转成JSON格式的字符串。
    //主要添加即可,不用写datatype:"JSON"
	contentType:"json/application"

不能使用get请求的原因:
1、因为此种方式发送的请求,后端必须得用@RequestBody进行接收,且接收的是Http请求体中的数据,Get请求没有请求体。
2、而且此方式的Ajax 必须要添加 contentType:”json/application”这个字段信息。

  • GET请求,则会把data的数据 附加在 URL 后,
  • POST请求,则就会把data的数据 放在请求体中。
  • dataType:指定服务器端返回的数据类型。
  • 若不指定,且后端返回的是Json,前端就会自动识别返回的数据是JSON。

以上参考文章:ajax请求传递data数据格式,部分为个人修改,侵权必删https://blog.csdn.net/qq_38737586/article/details/96578039

二、ajax属性传值方式主要写法总结:

1.:属性加引号的直接写法

 data: {"loginpwd":loginpwd},

2.:属性不加加引号的直接写法

 data: {loginpwd:loginpwd},

3.:拼接数据的写法,这种方法不需要加{}

 data: 'loginpwd='+loginpwd+'&loginname='+loginname,

4.序列化方式,这种方法不需要加{}

 data: $("#loginpwd").serialize(),//(一)中介绍过会转换成(二.3)的格式

5.组装数据,然后赋值给一个变量,在用JSON.stringify(obj)把obj->js对象转化为json字符串,或者直接写json字符串“{‘id’:’s01‘,’name‘:’001‘}”,等同于上面为json对象。

  • JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
var pwd = [{id:s01,name:001}];//数组格式
$.ajax({
      type: "post",
      url: "http://localhost:8080/toPwd",
      data: {
          pwd: JSON.stringify(pwd)//转化为json字符串
      },
      contentType:"json/application",
      success: function (datas) {
          $("#msg").html(datas.msg);
      }
  });

6.上面是目前我遇到的是这几种情况,同时:

  • JSON.parse()将json字符串转化为一个js对象,有需要是可以使用

以上参考来源ajax属性传值方式,侵权必删
https://www.cnblogs.com/tu-0718/p/8370925.html

大部分书写都尝试测验了,以及自我总结
有错请各位纠正!!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐