1、以get方式发送查询字符串
原生:
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
alert(xhr.responseText); //xhr.responseText为服务器返回的文本;xhr.response为服务返回的数据,通过xhr.responseType设置数据类型,取值有text、json、blob、arraybuffer,要放在onreadystatechange外。
}
};
xhr.open("get","server.php?myname=wswh&age=18");
xhr.send();
jQuery
$.ajax({
type:"get", //可以直接把查询字符串附加到url后
url:"server.php",
data:"myname=wswh&age=18", //还可以用{myname:"wswh",age:18}(json对象)
dataType:"html", //服务器返回的数据类型,取值有text、html、xml、script、json、jsonp。
success:function(res){
alert(res);
}
});
2、以post方式发送查询字符串
原生
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
alert(xhr.responseText);
}
};
xhr.open("post","server.php");
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
xhr.send("myname=wswh&age=18");
jQuery
$.ajax({
type:"post",
url:"server.php",
data:"myname=wswh&age=18", //还可以用{myname:"wswh",age:18}(json对象)
success:function(res){
alert(res);
}
});
3、发送json字符串
原生
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
alert(xhr.responseText);
}
};
xhr.open("post","server.php");
xhr.send('{"myname":"wswh","age":18}'); //还可以用JSON.stringify({myname:"wswh",age:18})
jQuery(jQuery ajax发送json对象本质属于发送查询字符串)
$.ajax({
type:"post",
url:"server.php",
data:'{"myname":"wswh","age":18}', //还可以用JSON.stringify({myname:"wswh",age:18})
success:function(res){
alert(res);
}
});
4、发送xml字符串
原生
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
alert(xhr.responseText);
}
};
xhr.open("post","server.php");
xhr.send('<?xml version="1.0" encoding="utf-8" ?><group><myname>wswh</myname><age>18</age></group>');
jQuery
$.ajax({
type:"post",
url:"server.php",
data:'<?xml version="1.0" encoding="utf-8" ?><group><myname>wswh</myname><age>18</age></group>',
success:function(res){
alert(res);
}
});
5、发送FormData对象
原生
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
alert(xhr.responseText);
}
};
var form1=new FormData();
//创建表单,html5以上支持
//也可以使用现有表单数据 var form1=new FormData(document.getElementById("form1"));
form1.append("myname","wswh"); //添加表单数据
var file1=document.getElementById("file1").files[0];
form1.append("file1",file1); //添加文件
xhr.open("post","server.php",true);
xhr.send(form1);
jQuery
$.ajax({
type:"post",
url:"server.php",
data:new FormData(document.getElementById("form1")),
success:function(res){
alert(res);
},
processData:false, //告诉jQuery不要去处理发送的数据
contentType:false //告诉jQuery不要去设置Content-Type请求头
});
6、跨域访问
跨域访问主要在服务器端配置。
php实现跨域
header("access-control-allow-origin:*"); //*可以替换为具体的一个域名,如http://www.aa.com
header("access-control-allow-headers:origin,x-requested-with,content-type,accept");
header("access-control-allow-methods:get,post,options");
asp.net core实现跨域
Startup.cs
(1)在ConfigureServices()方法中加入:
services.AddCors();
(2)在Configure()方法中加入:
app.UseCors(builder=>builder.AllowAnyOrigin() //或WithOrigins()
.AllowAnyHeader() //或WithHeaders()
.AllowAnyMethod();
);
7、发送https请求
ajax直接支持https请求。