vue 跨域 使用XMLHttpRequest 亲测好使

 let url='http://127.0.0.1:9000/pssnotifyyb?b=1'
            //url='https://api.j4u.ink/v1/store/other/proxy/remote/moyu.json'
            var xhr=new XMLHttpRequest()
            xhr.open('GET',url,true)//第三个参数是是否异步请求,默认true            
            xhr.onreadystatechange=function(){
                if(xhr.readyState===XMLHttpRequest.DONE && xhr.status===200){
                    console.log('请求成功',JSON.parse(xhr.responseText));
                }
            }.bind(this)
            xhr.send('ss')

XMLHttpRequest 是怎么回事

XMLHttpRequest(XHR)底层是基于HTTP协议实现的。 XMLHttpRequest对象有一个readyState属性,表示XMLHttpRequest对象的状态。

  • 当readyState为0时,XMLHttpRequest对象已经创建,但还未初始化。
  • 当readyState为1时,XMLHttpRequest对象已经调用open()方法,但还未发送请求。
  • 当readyState为2时,XMLHttpRequest对象已经发送请求,但还未接收到响应。
  • 当readyState为3时,XMLHttpRequest对象已经接收到部分响应数据。
  • 当readyState为4时,XMLHttpRequest对象已经接收到全部响应数据并解析完毕。

XMLHttpRequest对象还有一个status属性,表示HTTP响应状态码。常见的HTTP状态码有200表示请求成功,404表示请求的资源未找到,500表示服务器端内部错误等。

当XMLHttpRequest对象接收到HTTP响应时,客户端脚本会根据响应头中的Content-Type字段来判断响应内容的类型。

  • 如果Content-Type为text/xml,客户端脚本可以使用responseXML属性来获取XML格式的响应数据。
  • 如果Content-Type为text/plain或application/json,客户端脚本可以使用responseText属性来获取纯文本格式的响应数据,然后解析成JSON对象。
01-26 08:24