ajax

ajax

Ajax是什么,如何创建一个Ajax?

全称: Asynchronous JavaScript And XML 异步传输 + js + xml 也就是向服务器发送请求时,不必等待结果,而是可以同时做其他事情 等到有结果了它会自己根据设定进行后续操作 于此同时,页面不会整体刷新,提高了用户体验

创建:

1.创建一个XMLHttpRequest对象,也就是创建一个异步调用对象2.创建一个新的Http请求,并指定该HTTP请求的方法,url以及验证信息3.设置响应HTTP请求状态变化的函数4.发送HTTP请求5.获取异步调用返回的数据6.使用js和dom实现局部刷新

Ajax如何解决浏览器缓存问题?

ajax请求中,只有get请求会有缓存

解决方案

1.ajax请求前加上:ajaxObj.setRequestHeader('If-Modified-Since', '0');2.ajax请求前加上:ajaxObj.setRequestHeader('Cache-Control', 'no-cache');3.URL后面加上一个随机数: "random=" + Math.random();4.同理在url后面加上时间戳: "nowtime=" + (new Date()).getTime();5.jq中,可以: $.ajaxSetup({cache: false});

fetch与ajax

Ajax的本质是使用XMLHttpRequest对象来请求数据

fetch 是全局量 window 的一个方法,它的主要特点有:

第一个参数是URL:

第二个是可选参数,可以控制不同配置的 init 对象

使用了 JavaScript Promises 来处理结果/回调:

fetch()返回的 Promise 将不会拒绝HTTP错误状态, 即使响应是一个 HTTP 404 或 500。 相反,它会正常解决 (其中ok状态设置为false), 并且仅在网络故障时或任何阻止请求完成时,它才会拒绝。

默认情况下, fetch在服务端不会发送或接收任何 cookies, 如果站点依赖于维护一个用户会话,则导致未经认证的请求(要发送 cookies,必须发送凭据头).

对于CORS请求,使用include值允许将凭据发送到其他域:

 

ajax跨域

如何解决跨域问题?

ajax跨域一般是用jsonp(old)或者(cors)方案-需要后台进行配合配置

或者用websocket等请求来进行数据交互

另外window.postMessage也可跨域跨窗口传递消息(应该属于宏任务级别)

 

posted @ 2022-04-03 15:03  Luhuhuhu  阅读(27)  评论(1编辑  收藏  举报