ajax 数据请求(一)同域

参考:http://www.css88.com/jqapi-1.9/jQuery.ajax/

http://www.cnblogs.com/haitao-fan/p/3908973.html

1、常用格式化

$.ajax({

url:url,

type:'POST',

method :'POST',//jq 1.9 添加属性 ,type 的别名,1.9之前用 type
async:true,//是否异步处理,同步会锁定浏览器
crossDomain:false,//是否跨域
dataType:"json",//数据类型
data:data,//发送的请求数据
beforeSend:function(){

  //发送前执行的操作,一般用于验证,返回false 时终止请求

},
success:function(data,status,xhr){

  //请求成功的事件

},
error:function(xhr){

  //请求失败的事件
  alert("错误提示: " + xhr.status + " " + xhr.statusText);
},
complete:function(jqXHR,textStatus){
  //不论成功与否都执行的回调方法

}

});

2、参数

dataType 数据类型

default: Intelligent Guess (xml, json, script, or html)

data  的参数类型以下几种

  • 文本类型 
  • JSON字符串
  • JSON对象
  • JSON数组
  • FormData对象
  • 其他类型,比如html, 比如XML,只要设置要contentType即可,类似JSON类型

文本类型:
如:data = "uname=myname&mobileIpt=110" ;

JSON 字符串:(注意与json 对象区分)

如:data = "{uname:'myname',mobileIpt:'110','}";

JSON 对象:

如:data = {"uname":"myname","mobilelpt":"110"};

JSON 数组:

如:data = [

  {"name":"uname","value":"myname"},

  {"name":"mobileIpt","value":"110"},

]; 

var arr = $('#form').serializeArray() 序列化数组返回的是JSON 数组,可利用$.param(arr) 来解析json 数组,解析后为文本格式 "uname=myname&mobileIpt=110".

附:可通过  $('#form').serialize() 序列化方法 直接提取表单数据,生成文本格式 "uname=myname&mobileIpt=110"

在通过反序列化方法unserialize(文本格式) 的到一个json对象,这样就可以取出表单中的某些数据

FormatData对象:

FormatData对象可以更灵活方便的发送表单数据,因为可以独立于表单使用。

可通过Ajax上传文件。通过这种方式,可以非常方便的进行表单提交,直接表单转换成FormData对象即可。

//通过document.querySelector(".form")获取匹配的第一个表单
//想要获取所有匹配的元素用document.querySelectorAll(".form")
var fd = new FormData($("#form"));
//额外添加参数 fd.append(
"CustomField", "This is some extra data"); $.ajax({ url: url, type: "POST", data: fd, processData: false, // 不处理数据 contentType: false // 不设置内容类型 });

提示:若重服务器中获取到的是json 数组的话,需要用$.parseJSON()转为json对象来处理

原文地址:https://www.cnblogs.com/zwesy/p/9435875.html