添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

一、get方式(问号)传参

(一)字符串拼接

拼接原则:
1.字符串用双引号或单引号包起来;
2.字符串拼接变量,用"+";
3.多个参数的参数名之间用"&"。
a.纯字符串拼接

var param = "YSNAME=张三&YSSFZH=4109&YSBM=001";

b.字符串+变量拼接

var param1 = "DWID="+$get("frcode").value;//只有一个参数
var param2 = "DWID="+$get("frcode").value+"&YSNAME="+YSNAME+"&YSSFZH="+YSSFZH+"&YSBM="+YSBM;//多个参数

综合运用:

/*医师姓名*/
var YSNAME= encodeURI(encodeURI($get("YSNAME").value.trim()));
/*医师身份证号*/
var YSSFZH = $get("YSSFZH").value.trim();
/*医师编码*/
var YSBM = $get("YSBM").value.trim();
var param="DWID="+$get("frcode").value+"&YSNAME="+YSNAME+"&YSSFZH="+YSSFZH+"&YSBM="+YSBM;
var CURPAGE=$get("CURPAGEDetail").value;
param+="&CURPAGE="+CURPAGE + "&PAGESIZE=15";
//"+="的意思是:自身拼接后再赋值给自己,相当于param=param+"&CURPAGE="+CURPAGE+"&PAGESIZE=15";

说明:
1.去除获取字符串左右两边的空格:trim(),这是自定义的方法;

2.$get('id')是对document.getElementByid('id')的封装。

(二) 中文乱码

问号传参需对中文进行转码, encodeURI(encodeURI("中文"))。

UpdateTime--2017年5月15日16:59:50

二、异步请求&同步请求

同步: 用户必须等待上一个操作完成之后,才能执行下一个操作;

异步: 用户不必等待上一个操作完成就可以执行下一个操作;

添加科室医生信息,发送Ajax请求插入数据库,返回操作结果,根据返回信息,执行动态插入tr;

批量删除科室医生信息,发送Ajax请求删除该条信息,返回操作结果,根据返回信息,执行动态删除tr。

(一)异步请求

* 添加科室、医生信息 this.addDeptDoc = function(CONSULT_DEPENT_ID, CONSULT_DEPENT, CONSULT_DOCTOR_ID, CONSULT_DOCTOR, DOCTOR_PHONE) { var param = ""; // 返回操作结果 var message = ""; param += CONSULT_DEPENT_ID + "&CONSULT_DEPENT=" + encodeURI(encodeURI(CONSULT_DEPENT)) + "&CONSULT_DOCTOR_ID=" + CONSULT_DOCTOR_ID + "&CONSULT_DOCTOR=" + encodeURI(encodeURI(CONSULT_DOCTOR)) + "&DOCTOR_PHONE=" + DOCTOR_PHONE; // *ID param += "&CONSULT_APPLY_ID=" + $get('CONSULT_APPLY_ID').value; * 添加科室、医生信息操作 $.getJSON({ baseUrl + "/telemedicinet/consult/add.do?CONSULT_DEPENT_ID=" + param, function(result) { message = result.msg; return message;

同步请求,满足不了实例的要求,上例只是对异步请求做个介绍。

(二)同步请求

* 添加科室、医生信息 this.addDeptDoc = function(CONSULT_DEPENT_ID, CONSULT_DEPENT, CONSULT_DOCTOR_ID, CONSULT_DOCTOR, DOCTOR_PHONE) { // 返回操作结果 var message = ""; // *ID var CONSULT_APPLY_ID = $get('CONSULT_APPLY_ID').value; * 添加科室、医生信息操作 $.ajax({ type:"post", url: baseUrl + "/telemedicinet/consult/add.do", data:{CONSULT_DEPENT_ID:CONSULT_DEPENT_ID,CONSULT_DEPENT:CONSULT_DEPENT,CONSULT_DOCTOR_ID:CONSULT_DOCTOR_ID,         CONSULT_DOCTOR:CONSULT_DOCTOR,DOCTOR_PHONE:DOCTOR_PHONE,CONSULT_APPLY_ID:CONSULT_APPLY_ID}, success: function(result) { message = result.msg; dataType: "json",//指定返回数据类型 async:false// 同步请求 return message;

UpdateTime--2017年5月16日09:16:41

1.必须使用同步请求情况介绍:

1.1.必须要等待返回结果,然后根据返回结果来决定下面要执行的操作,同时必须实现局部刷新;

接着上面的代码,需要根据返回结果要执行的操作

1.2 双层for循环, 里面嵌套了一个Ajax请求,必须使用同步的原因:

删除数据操作,肯定是一个一个执行,不会同时执行,如果使用异步的话,代码运行到,deleteRow(j)时报错。

2.post方式请求,传参不必考虑乱码问题;

3.post传参,多个参数之间用","隔开,键与值之间使用":",键可以不加双引号。

UpdateTime--2017年6月8日15:00:16

三、关于Ajax传参的请求数据格式问题

方式一:标准格式,这种形式其实质是json对象
格式:
{ + "key" + ":" + "value" + }
举例:
{"key1":"value1","key2":"value2",...}
方式二:键可以不加双引号
格式:
{ + key + ":" + "value" + },多个键值对之间使用","拼接
举例:
{key1:"value1",key2:"value2",...}
方式三:
格式:
参数名与参数值之间使用"=",多个参数之间使用"&"进行拼接,值不能带双引号
错误用法:
param1="value1"&param2="value2"&...
举例:
param1=value1&param2=value2&...
注意:
1. 方式一和方式二参数名所对应的参数值既可以为string类型字符串又可以为int类型数字;
2. 方式三参数名所对应的参数值只能是string类型字符串;
3. 但是数据传输时,参数值均会被转换成字符串String来传输;后台接收该参数时用String类型来接收(可以进行强转)。

四、要求后台返回数据类型为JSON的三种方式

大前提: 返回的数据必须是JSON格式的数据(JSON字符串或JSON对象)
a.前台使用$.getJSON()来接收返回的数据;
如果传递过来的是JSON字符串,该方式会自动将其转换成JSON对象
b.后台指定返回数据格式为JSON对象:
response.setContentType("application/json;charset=UTF-8");
$.ajax();$.get();$.post()这三种方式接收到的数据是JSON对象
c.后台返回数据格式为JSON字符串
若后台没有指定数据格式为JSON对象,则返回的是JSON字符串;
$.ajax();$.get();$.post()这三种方式需使用eval('('+result+')'),将其转换成JSON对象

UpdateTime--2017年9月6日10:35:46

五、$.ajax()、$.get()、$.post()、$getJSON()格式及参数介绍

参考地址:W3SCHOOL

5.1 $.ajax()

常用的格式

$.ajax({ type : post,// 默认值为get,可选项:get、post url : '', data : { param1 : value1, param2 : value2 },// 可以不传参数 async : false,// 默认值为true,发送异步请求 cache : false,// 默认值为true,浏览器可能会对该请求进行缓存 dataType : 'json',// 返回数据的格式,会自动匹配,无需配置,text/json/xml/html/script/jsonp succes : function(data) {// 请求成功,data用于接收返回的数据 error : function(result) {// 请求失败,data用于接收返回的数据

5.2 $.get()和$.post()

$.get(url,data,success(response,status,xhr),dataType)

参数说明:

必需。规定将请求发送的哪个 URL。  可选。规定连同请求发送到服务器的数据。  success(response,status,xhr)

可选。规定当请求成功执行的回调函数。

额外的参数:

  • response - 包含来自请求的结果数据
  • status - 包含请求的状态
  • xhr - 包含 XMLHttpRequest 对象
  • 5.4 $.getJSON()

    说明:$.getJSON()和$.get()格式,有稍微区别,区别在于:

    $.getJSON()不能声明dataType属性,因为它的值已经指定为JSON,即指定返回数据类型为JSON格式,其它地方一模一样。

    a. 如果需要在出错时执行函数,请使用 $.ajax;

    b. Ajax使用get方式发送请求时,$.ajax()、$.get()、$.post()、$.getJSON()这四种get请方式,发送请求的数据有两种方式:

    使用原生态的请求数据格式,声明请求data这个参数对象并赋值,如:{param1 : 'value1',param2 : 'value2'}

    不声明请求data这个参数对象,直接在URL上追加参数,构成:URL + '?' + param1=value1 + '&' + param2=value2,如:

    $.getJSON(
        'sendGetRequest.do?param1=value1&param2=value2',// url后面拼接参数,不再声明请求参数对象
        function(data) {// 请求成功回调函数
    

          第一种原生态的方式,最终发送请求时,请求参数还是会以方式二的格式进行传输 

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • jquery遍历集合&数组&标签
  • ajax w3chool参数详细介绍
  • ajax-原理分析
  • ajax缓存问题及解决方案
  • ajax 设置同步请求的4种实现方式
  • ajax与后台进行数据交互的几种常用方式(最全)
  •