简单练习ajax

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 准备好的自定义类就可以了
//如果用户没有传值的话将使用自定义里面的默认值,传值将使用用户定的信息与错误码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值