一、请求的完整示例
示例1
var param={
"rtspaddr":document.getElementById("rtsp").value
}
$.ajax({
type:"post",
url:"/ConvertRtsp",
contentType: "application/json;charset=UTF-8",//请求的媒体类型
data:JSON.stringify(param),//很重要,但是不知道为啥一定要强行转一下
dataType:"json",//返回对象
success: function(res){
if(res.Code==0){
console.log(res.FlvAddr)
}
},
error: function(e) {
console.log("失败"+e);
}
});
示例2
login(){
let my_data = {
username:"admin",
password:"1234"
}
$.ajax({
url:ztx.api + 'auth/login',
dataType: "json", //返回格式为json
async: true,//请求是否异步,默认为异步,这也是ajax重要特性
type: "POST",//请求方式
headers:{
Referer_:'/login'
},
data:my_data,
success:(res)=>{
if(res.code ==200){
this.$message.success(res.msg)
}else{
this.$message.err(res.msg)
}
}
})
}
二、data数据格式
同一个请求,postman返回的跟自己接收到的竟然不一样,经过几番百度,终于发现是data数据格式的问题,总结如下:
ajax有三种传递传递data的方式:
json格式
json字符串格式
标准参数模式
1.json格式
形如:
{“username”:”chen”,”nickname”:”alien”}
$.ajax({
type:"post",
url:"/test/saveUser",
data:{"username":"chen","nickname":"alien"},
dataType:"json",
success: function(data){
console.log(data);
}
});
2.json字符串
形如:
“{“username”:”chen”,”nickname”:”alien”}” 或者JSON.stringify({“username”:”chen”,”nickname”:”alien”})
$.ajax({
type:"post",
url:"/test/saveUser",
data:JSON.stringify({"username":"chen","nickname":"alien"}),
contentType:"json/application"
dataType:"json",
success: function(data){
console.log(data);
}
});
用此格式get请求参数传递不过去,不会把json串解析成参数
而且需要添加 contentType:”json/application”
3.标准参数模式
形如:
“username=chen&nickname=alien”
$.ajax({
type:"post",
url:"/test/saveUser",
data:"username=chen&nickname=alien",
dataType:"json",
success: function(data){
console.log(data);
}
});
$(“#form1”).serialize() 就是把表单的数据拼成这个格式的字符串!
三、总结
post请求能用1、2、3类型传递参数
get请求能用1、3类型传递参数
$(“#form1”).serialize() 是将对应表单中的input的name和value进行拼装,最后拼成3类型的字符串