它的结构为:
$.get(url[,data][,callback][,type])
| 参数名称 | 类型 | 说明 |
| :-: | :-: | :-: |
| url | String | 请求的HTML页的URL地址 |
| data(可选) | Object | 发送至服务器的key/value数据会作为QueryString附加到请求URL中 |
| callback(可选) | Function | 载入成功时回调函数(只有当Response的返回状态是success才调用该方法)自动将请求结果和状态传递给该方法 |
| type(可选) | String | 服务器端返回内容的样式,包括xml、html、script、json、text和_default |
我们用$.get()来实现评论的功能:
get1.html
评论:
姓名:
内容:
已有评论:get1.html向get1.php发送get请求,服务器端get1.php的代码如下:
<?php header("Content-Type:text/html; charset=utf-8"); echo "{$_REQUEST['username']}:
{$_REQUEST['content']}
"; ?>由于服务器端get1.php返回的数据格式是一段HTML片段,因此并不需要经过处理就可以将新的HTML数据插入到主页面中。
我们再来看一下get.html中的核心代码jQuery是如何完成get请求的:
$(function(){
$(“#send”).click(function(){
$.get(“get1.php”, {
username : $(“#username”).val() ,
content : $(“#content”).val()
}, function (data, textStatus){
$(“#resText”).html(data); // 把返回的数据添加到页面上
}
);
})
})
我们可以看到在回调函数中,我们直接将返回回来的data(也就是HTML片段)直接在html中使用。
HTML片段实现起来只需要很少的工作量,但这种固定的数据结构并不一定能够在其他的Web应用程序中得到重用。
XML文档
服务器端是如何接收数据然后返回XML的呢?
代码如下:
get2.php
<?php header("Content-Type:text/xml; charset=utf-8"); echo "<?xml version='1.0' encoding='utf-8'?>".“”.
“<comment username=‘{$_REQUEST[‘username’] }’ >”.
“{$_REQUEST[‘content’]}”.
“”.
“”;
?>
注意:由于服务器端返回的数据格式是XML文档,因此需要在服务端设置Content-Type类型,代码如下:
header(“Content-Type:text/xml; charset=utf-8”);
对于服务器端返回的数据是XML格式的情况,我们需要对返回的数据进行处理,才能应用到HTML中,jQuery有强大的DOM处理能力,处理XML文档与处理HTML文档一样,也可以使用常规的attr()、find()、filter()以及其他方法。jQuery代码如下:
$(function(){
$(“#send”).click(function(){
$.get(“get2.php”, {
username : $(“#username”).val() ,
content : $(“#content”).val()
}, function (data, textStatus){
var username = $(data).find(“comment”).attr(“username”);
var content = $(data).find(“comment content”).text();
var txtHtml = “
”+username+“:
”+content+“
”;$(“#resText”).html(txtHtml); // 把返回的数据添加到页面上
},‘XML’);
});
})
返回数据格式为XML文档的过程实现起来比HTML片段要稍微复杂些,但XML文档的可移植性是其他数据格式无法比拟的,因此以这种格式提供的数据的重要性将极大提高。不过,XML文档体积相对较大,与其他文件格式相比,解析和操作它们的速度要慢一些。
JSON文件
之所以会出现这种数据格式的文件,很大程度上是因为XML文档体积大和难以解析。JSON文件和XML文档一样,也可以方便的被重用。而且,JSON文件非常简洁,也容易阅读。
服务器端是如何接收数据然后返回JSON的呢?
代码如下:
get3.php
<?php header("Content-Type:text/html; charset=utf-8"); echo "{ \"username\" : \"{$_REQUEST['username']}\" , \"content\" : \"{$_REQUEST['content']}\"}" ?>JSON的格式还是比较严格的,所以格式不能写错了。
由于服务器端返回的数据格式是JSON文件,因此需要对返回的数据进行处理之后,才可以将新的HTML数据添加到主页面中。HTML文件其他部分还是一样,要修改的地方是jQuery部分,jQuery代码如下:
$(function(){
$(“#send”).click(function(){
$.get(“get3.php”, {
username : $(“#username”).val() ,
content : $(“#content”).val()
}, function (data, textStatus){
var username = data.username;
var content = data.content;
var txtHtml = “
”+username+“:
”+content+“
”;$(“#resText”).html(txtHtml); // 把返回的数据添加到页面上
},“json”);
});
})
在上面的代码中,将$.get()方法的第4个参数(type)设置为”json”来代表期待服务器返回的数据格式。
对于服务器端返回HTML片段、XML数据、JSON数据的优缺点进行分析,可以的得知在不需要与其他应用程序共享数据的时候,使用HTML片段来提供返回数据一般来说是最简单的;如果数据需要重用,那么JSON文件是不错的选择,它在性能和文件大小方面具有优势,它是Web服务器领域的“世界语”,我们推荐使用JSON。
$.post()
它与$.get()方法的结构和使用方式都相同,不过它们之间仍然有以下区别。
-
GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTPP消息的实体内容发送给Web服务器。当然,在Ajax请求中,这种区别对用户是不可见的
-
GET方式对传输的数据有大小限制(通常不能大于2KB),而使用POST方式传递的数据量要比GET方式大得多(理论上不受限制)
-
GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等。在某种情况下,GET方式会带来严重的安全性问题,而POST方式相对来说就可以避免这些问题。
-
GET方式和POST方式传递的数据在服务器端的获取也不相同。在PHP中,GET方式的数据可以用KaTeX parse error: Undefined control sequence: \[ at position 6: \_GET\̲[̲\]获取,而POST方式可以用_POST[]获取。两种方式都可以用$_REQUEST[]来获取。
由于POST和GET方式提交的所有数据都可以通过$_REQUEST[]来获取,因此只需要改变jQuery函数,就可以将程序在GET请求和POST请求之间切换。
代码如下:
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
自学几个月前端,为什么感觉什么都没学到??
这种现象在很多的初学者和自学前端的同学中是比较的常见的。
因为自学走的弯路是比较的多的,会踩很多的坑,学习的过程中是比较的迷茫的。
最重要的是,在学习的过程中,不知道每个部分该学哪些知识点,学到什么程度才算好,学了能做什么。
很多自学的朋友往往都是自己去找资料学习的,资料上有的或许就学到了,资料上没有的或许就没有学到。
这就会给人一个错误的信息就是,我把资料上的学完了,估计也-就差不多的了。
但是真的是这样的吗?非也,因为很多人找的资料就是很基础的。学完了也就是掌握一点基础的东西。分享给你一份前端分析路线,你可以参考。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
很多自学的朋友往往都是自己去找资料学习的,资料上有的或许就学到了,资料上没有的或许就没有学到。
这就会给人一个错误的信息就是,我把资料上的学完了,估计也-就差不多的了。
但是真的是这样的吗?非也,因为很多人找的资料就是很基础的。学完了也就是掌握一点基础的东西。分享给你一份前端分析路线,你可以参考。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。