先来交待一下实验环境,实验代码如下(Part1位ajax normal版):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>看控制台吧</P》
<!--
$.ajax({});
type:
url:
async:
data:
dataType:
contentType:
success:
error:
-->
</body>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$.ajax(
{
type:"get",
url:'data.txt',
data:{
uname:"zhangsan"
},
success:function(data){//形参“data”,你可以把他改成任何名字,只要与函数体中用形参初一致
console.log(data);
}
}
);
</script>
</html>
Part 1$.ajax()
刚开始实验时(by 上述代码)
开始发现个问题,似乎url–>NuLL如下图:
看了大佬的解决方案:
http://t.csdnimg.cn/Sadao
即,我需要用Live Serve去run it,不然不行,读不了data.txt,修改后:
可发现,控制台打印了data.txt的所有内容
还有个事,后面有这么做的:
success:function(sss){
console.log(sss);
var sthing=JSON.parse(sss);
console.log(sthing);
}
首先这啥意思呢,将sss的内容用JSON.parse()方法改成JSON格式
这里得注意个事昂<避坑>,像我这上面的data.txt内容就报error或不好使了,这样(包括后面dataType)改JSON的前提是原文件内容长得就像JSON格式,明白不?像下面一样(注意和上面打印的内容对比)
若不用JSON.parse(),这还能这么做:
**<script type="text/javascript">
$.ajax(
{
type:"get",
url:'data.txt',
data:{
// uname:"zhangsan"
},
dataType:"json",
success:function(sss){
console.log(sss);
// var sthing=JSON.parse(sss);
//console.log(sthing);
}
}
);
</script>
这样也能转,还~注意个事,已JSON格式再JSON.parse转JSON格式发现会打印不出来,算是一个报error
Part 2 $get()
$.get()的语法为:
$.get(“请求地址”,“请求参数”,function(形参){
})
如图,若请求参数啥的没有则可以省略,也可以像下面一样写个{} ,即表示空
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type="text/javascript"></script>
<script>
$.get("data.json",{},function(sss){
console.log(sss);
})
</script>
Part 3 $.post()
with
$.getJSON()
注意:
$.post()必须要有服务器
$.getJSON要求返回的数据格式必须是JSON格式