原生Ajax全称? Async Javascript And XML?
ajax可以在网页不刷新的情况下可以请求数据然后实现网页局部刷新或者渲染
如何创建一个原生的ajax??
上代码!!!
//第一步 先城建一个ajax的核心 XMLHttpRequest
let xhr = new XMLHttpRequerst();
//第二步 使用open 创建请求 第一个参数是请求方式 第二个是请求的地址 第三个是同步或者异步
xhr.open('GET',"https://www.baidu.com",false)
//如果是post请求 必须要写请求头
xhr.setRequestHeader('') //设置请求头
//第三步 为xhr.onreadystatechange 设置监听事件
xhr.onreadystatechange = function(){
if(xhr.readyState == 4) {
if(xhr.status == 200){
alert(xhr.responseTwxt)
//readyState 0 请求未初始化 刚刚实例化XMLHttpRequest
//readyState 1 客户端与服务器建立链接 调用open方法
//readyState 2 请求已经被接收
//readyState 3 请求正在处理中
//readyState 4 请求成功
}
}
}
// 第四步 发送请求数据 调用send 发送请求 如果不需要参数就写一个null
xhr.send(null)
http常见的状态码??
(代码上的200 就是状态码 表示成功)
100—199? 请求正在处理中
200—299? 一般都是表示成功?
300—399? 表示重定向
400—499? 资源找不到 客户端报错
500—599? 服务器内部报错
跨域
简单说一下为什么会出现跨域
跨域是浏览器的同源策略引起的 协议? 域名? 端口号 有任何一个不一样就会出现跨域
解决跨域的办法:
1,jsonp?是解决跨域的一种解决方案,实现原理主要是利用动态创建 script 标签,设置src属性,页面要提前定义好callback。后端会返回回调函数执行,并包裹参数callback(data)??callback 中的参数就是 json
2在vue 中主要是通过vue 脚手架中的vue.config.js 文件来配置的,通过在devServer中的proxy来配置跨域的前缀
3中转或者叫服务代理
|