1、load()函数
<h3>你最喜欢读什么书?</h3>
<p id="cont"></p>
<button>点击</button>
$(function(){
$("button").click(function () {
$("#cont").load("book.php");
})
})
book.php
<ul>
<li>《慢慢来,一切都来得及》</li>
<li>《你的孤独虽败犹荣》</li>
<li>《你只是看上去很努力》</li>
<li>《MySQL从入门到跑路》</li>
</ul>
<div>你点出来的元素</div>
当点击button按钮使便会触发load函数,把book.php里面的代码导入到p标签里面
2、$.get()
$.get() 是以GET提交的方式替代ajax $.get() 比ajax简单一点,不会太复杂
//$.get()有四个参数
url:你要提交(载入)的页面
data:你要提交的数据
callback:当执行成功是所用的回调的函数
type:返回的信息或数据的格式,一般 json text html
$.get('handle.php',{ name: "John", time: 2pm"},
function(response{
console.log(response.name);
},"json");
3、$.ajax
ajax的参数比较多,就只说常见和常用的 具体看手册
$(function(){
$(".submit").click(function(){
$.ajax({
type : "GET",
url : "test.php",
data : "name=lzc",
dataType : "json",
cache: false,
async:false,
success : function (res) {
if (res.state === "失败"){
alert(res.message);
}else{
alert(res.message);
}
},error{
}
})
})
})
type:是以什么方式提交,get或post
url:要提交(载入)的页面
data:你要提交的数据
dataType:数据以什么格式返回回来
cache:是否缓存此页面,默认为true,false为不缓存
async:默认为true,当为true时进行异步请求。false进行同步请求。如果进行同步请求,那么需要注意,只有在请求返回回来之后才会执行下面的代码
success:请求成功之后的回调函数
error:请求失败时用的回调函数
4、判断是否是ajax请求
判断是否是合法的ajax请求十分重要,否则会被进行模拟ajax请求窃取数据 如何检查
你可以在浏览器右键点击检查或者F12 找到Network 看type是否有xhr; xhr(缩写) = XMLHttpRequest 就是ajax提交 后台如何判断呢?
if(!isset($_SERVER["HTTP_X_REQUESTED_WITH"])||$_SERVER["HTTP_X_REQUESTED_WITH"] != "XMLHttpRequest" )
{
echo '无效的请求',"300";
}
//如果进行了ajax请求那么server里面就会有,判断是否存在就可以知道是否有ajax请求
5、异常处理
5.1、抛异常
$id = $_GET["id"];
if( !preg_match("/^[1-9]\d*$/",$id) ){
throw new Exception('参数必须是整型',"400");
//PHP自带异常函数处理,把异常丢进里面
}
5.2、自定义异常类
class LzcException extends Exception
{
public function lzc()
{
}
}
//因为PHP自带异常函数处理,所以我们可以自定义异常处理类
//这样处理不同的异常时比较方便省力
5.3、 异常处理方式
//try{}catch{} 方式
try{ // try里面进行逻辑代码,如果出现异常进行抛异常
$id = $_GET["id"];
if( !preg_match("/^[1-9]\d*$/",$id) ){
throw new LzcException('参数必须是整型',"400");
}
}catch(Exception $exc){ //catch里面进行异常处理,返回信息或数据
echo json_encode(["state"=>0,"message"=>$exc>getMessage()]);
}
//自定义异常处理
class BaseException extends Exception //自定义类继承自带类
{
public $msg;
public $code;
public function __construct($message = "", $code = 0)
{
if (!empty($message)){
$this->msg = $message;
}
if (!empty($code)){
$this->code = $code;
}
echo $this->returnJson();
}
public function returnJson()
{
header('content-type:application/json;charset=utf-8');
return
json_encode(['errcode'=>$this>code,'msg'=>$this>msg]);
}
}
class ParamMustInt extends BaseException
{
public $code = 400;
public $msg = '参数必须为整型';
public function writeLog(){}
}
//继承上一个自定义的类 这样就可以在类里面写成员方法 修改起来也方便很多
$message_id = $_GET['id'];
if( !preg_match('/^[1-9]\d*$/',$message_id) ){
throw new ParamMustInt();
}
//当抛异常的时候只需要new 准备好的自定义类就可以了
//如果用户没有传值的话将使用自定义里面的默认值,传值将使用用户定的信息与错误码