创建ajax

64 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情

js本身有JSON内置对象:

转换为js语句:JSON.parse(obj)

转换为json语句:JSON.stringify(obj)

  let str= '{"name":"李四","age":23}'    ==>string
  let a = JSON.parse(str)    ==>a:object

 let obj = {name:'张三',age:22}    ==>object
  let b = JSON.stringify(obj)    ==>b:string

eval():遇见可执行js语句时,会直接返回结果

 let a = 'console.log("你看看我有多厉害")'    ==>string
 eval(a)    ==>会直接打印
如果执行eval()方法时遇见了{},则需要给字符串前后加一个 "("")"

 let obj = '{"name":"张三","age":23}'
let a = eval("(" + obj + ")")
 console.log(a)    ==>Object

使用Ajax获取本地文件: ①:创建Ajax对象

 let xhr = new XMLHttpRequest()

②:创建请求

 xhr.open("GET","(json文件的url)")

xhr.open("GET","外部接口链接")
 使用POST请求时,需要使用请求头
 xhr.open("POST", 接口地址)

//设置请求头:url格式

       xhr.setRequestHeader('Content-Type',"application/x-www-form-urlencoded")

或设置请求头:JSON格式

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

③:发送请求

xhr.send() ④:接收响应,监听状态

xhr.onreadystatechange = function(){

if(xhr.readyState === 4 && xhr.status === 200){
        console.log(xhr.response)    ==>json文件
        //执行功能代码
}

 }

readyState返回值:

0 未初始化 或 请求未初始化

1 正在加载 或 已建立服务器连接

2 已加载 或 已收到请求

3 交互式 或 处理请求

4 表示 完成 或者是 请求已完成且响应已准备好

status状态值:

200请求成功

404请求的资源不存在

500服务器错误