ajax前后端交互

ajax

        是:  *Ajax* 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML)


ajax的基本使用       (详见ajax案例)

    1.新建XMLHttpRequest对象

             let xhr = new XMLHttpRequest()

    2.配置请求参数

            xhr.open("get","/checkUser",true);                 //checkUser地址。true是异步,false是同步

    3.接收返还值

            xhr.onload = function(){

                let res = JSON.parse(xhr.responseText);

             }

    4.发送服务器

            xhr.send();

readyStatus      (老的方式,请求状态,可以不用)


针对ajax的详细解释

get注意点

        get和querystring的问题,通过url传参    (带参方式)

        get通过parmas传参    (跟querystring区别是不带参数会错误)

带个4的参数

在后台路由指定是什么

post注意点

        发送数据时候需要设置http正文头格式

            xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");      //默认编码

            xhr.setRequestHeader("Content-type","multipart/form-data");      //二进制编码

            xhr.setRequestHeader("Content-type","application/json");      //json编码

获取头部信息;

            getAllResponseHeaders  或者是getResponseHeader 


onreadystatechange

    onreadystatechange:存有处理服务器响应的函数,每当 readyState 改变时,onreadystatechange 函数就会被执行。

    readyState:存有服务器响应的状态信息

                0: 请求未初始化(代理被创建,但尚未调用 open() 方法)

                1: 服务器连接已建立(`open`方法已经被调用)

                2: 请求已接收(`send`方法已经被调用,并且头部和状态已经可获得)

                3: 请求处理中(下载中,`responseText` 属性已经包含部分数据)

                4: 请求已完成,且响应已就绪(下载操作已完成)

    status常用状态码

            HTTP                状态码描述

            100                    继续。继续响应剩余部分,进行提交请求

            200                    成功

            301                    永久移动。请求资源永久移动到新位置

            302                    临时移动。请求资源零时移动到新位置

            304                    未修改。请求资源对比上次未被修改,响应中不包含资源内容

            401                    未授权,需要身份验证

            403                    禁止。请求被拒绝

            404                    未找到,服务器未找到需要资源

            500                    服务器内部错误。服务器遇到错误,无法完成请求

            503                    服务器不可用。临时服务过载,无法处理请求


返还数据类型  

        服务器返还json数据

                xhr.responseText  //来获取     文本

        服务器返还xml数据

                xhr.responseXML //获取值     页面


重写response里的content-type内容

        xhr.overrideMimeType('text/xml; charset = utf-8')


同步及异步ajax

        设置true和false区别;

                1.异步,任务不需等待不受影响

                2.同步,等待其他任务完成


利用FormData来实现文件上传      (详见FormData案例)

        创建FormData对象

        监控上传进度

              upload 事件

                onloadstart   上传开始

                onprogress  数据传输进行中

                evt.total :需要传输的总大小;

                evt.loaded :当前上传的文件大小;

                onabort 上传操作终止

                onerror  上传失败

                onload 上传成功

                onloadend 上传完成(不论成功与否)


Ajax前后端交互中,可以使用Ajax来上传文件。一种常见的方法是使用FormData对象来传输文件数据。首先,你需要创建一个FormData对象,并将文件添加到该对象中。然后,你可以使用Ajax发送POST请求,将FormData对象作为请求的数据发送到服务器。在服务器端,你可以使用相应的后端语言来处理接收到的文件数据。通过这种方式,你可以实现文件的上传和后端的处理。\[1\]另外,你也可以使用一些第三方库,如axios或jQuery,来简化文件上传的过程。这些库提供了更方便的方法来处理文件上传的细节,使得代码更加简洁和易于维护。\[2\]总之,通过Ajax前后端交互,你可以实现文件的上传和后端的处理,提供了更好的用户体验和数据交互的能力。 #### 引用[.reference_title] - *1* [AJAX前后端交互](https://blog.csdn.net/m0_60280770/article/details/119517580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Ajax前后端交互利器详解(一)](https://blog.csdn.net/Augenstern_QXL/article/details/120116296)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值