ajax1.0_2.0

Posted 善良的小邱子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax1.0_2.0相关的知识,希望对你有一定的参考价值。

ajax
<!
DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <input type="button" value="点击发送请求" id="send"> <div id="content"></div> </body> <script> // ajax=>>>> XMLHttpRequest 老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象 /* 大概分为四步 1:创建对象 2:连接 3:发送请求 4:接收 */ let dom = document.getElementById(send); let contentDom = document.getElementById(content); dom.onclick = () => { // 1:创建对象 let xhr; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } //:2:连接 /* open(method,url,async) XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true 不推荐使用 async=false,但是对于一些小型的请求,也是可以的。 javascript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。 当您使用 async=false 时,请不要编写 onreadystatechange 函数 - 把代码放到 send() 语句后面即可 */ xhr.open(get, ./data/note.txt, true) //:3:发送请求 /* send() 方法中可以发送数据 */ xhr.send(); // 4:接收 /* 每当 readyState 改变时,就会触发 onreadystatechange 事件 readyState 从 0 到 4 发生变化 0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪 ------------------------------------------------- status 200: "OK" 404: 未找到页面 如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。 responseText 获得字符串形式的响应数据。 responseXML 获得 XML 形式的响应数据。 */ xhr.onreadystatechange = () => { if (xhr.readyState == 4 && xhr.status == 200) { console.log(xhr.responseText) content.innerHTML = xhr.responseText; } } } </script> </html>

ajax2.0
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <input type="button" value="点击发送请求" id="button">
    </body>
    <script>
        /* 
        ajax 1.0缺陷
        1.只支持文本数据的传送,无法用来读取和上传二进制文件。
        2.传送和接收数据时,没有进度信息,只能提示有没有完成。
        3.受到"同域限制"(Same Origin Policy),只能向同一域名的服务器请求数据 */
        let buttonDom=document.getElementById(button);
        buttonDom.onclick=()=>{
            let xhr=new XMLHttpRequest();
            xhr.open(post,./add,true);
            xhr.send();
            xhr.onreadystatechange=()=>{
                if(xhr.readyState==4&&xhr.status==200){
                    console.log(xhr.responseText)
                }
            }
        }
        
    </script>
</html>

node 服务器

const http=require(‘http‘);
const fs=require(‘fs‘);
const url=require(‘url‘);
http.createServer((req,res)=>{
    // req.headers.origin  ajax2.0 新增 可以判断来源  这样就可以限制访问
    if(req.headers.origin==‘http://localhost:8888‘){
        res.setHeader(‘Access-Control-Allow-Origin‘,‘*‘);// 此方法ajax1.0即有
    }
    let {pathname,query}=url.parse(req.url,true);
    // 区分html页面与接口
    if(pathname==‘/add‘){
        res.write(JSON.stringify(‘接口请求完成‘));
        res.end();
    }else{
        fs.readFile(`./${pathname}`,(err,data)=>{
            if(err){
                console.log(err)
                res.writeHeader(404);
                res.end();
                return ;
            }
            res.write(data);
            res.end();
        })
    }
}).listen(8888);
console.log(‘服务器运行在localhost8888端口‘)

 

 

 

以上是关于ajax1.0_2.0的主要内容,如果未能解决你的问题,请参考以下文章

用于模糊的 OpenGL ES 2.0 片段着色器速度慢且质量低

这些 C++ 代码片段有啥作用?

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

VSCode 配置 用户自定义代码片段 自定义自动代码补充

每个片段照明和窗口到相机的转换

[AndroidStudio]_[初级]_[配置自动完成的代码片段]