ajax 了解一哈 第二章

设置请求头信息:

md.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

Content-Type:设置请求体的内容的类型,application/x-www-form-urlencoded');

是查询字符串的固定写法

md.setRequestHeader('name','huse');//自定义设置的不是预定义设置的

比如Content-Type就是预定义设置的

   // *:表示所有的头信息我都可以接受

    response.setHeader('Access-Control-Allow-Origin','*')

    response.setHeader('Access-Control-Allow-Headers','*')



const express = require("express");
const app = express();
app.get('/server',(request,response) =>{
    response.setHeader('Access-Control-Allow-Origin','*')
    response.send('Hello Ajax')
});

//all:接受任意类型的请求 ->改post为all
app.all('/server',(request,response) =>{
    // *:表示所有的头信息我都可以接受
    response.setHeader('Access-Control-Allow-Origin','*')
    response.setHeader('Access-Control-Allow-Headers','*')
    response.send('你看到了这段话就是猪')
});

app.listen(8000,()=>{
    console.log('start server...,port:8000')
})

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ajax的post请求</title>
</head>
<body>
    <div style="width: 200px;height:100px;border:2px solid #f40" id="ID"></div>
    <script>
        const ID = document.getElementById('ID')
        ID.addEventListener('mouseover',function(){
            const md = new XMLHttpRequest();
            md.open('POST','http://127.0.0.1:8000/server');
            md.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            md.setRequestHeader('name','huse');//自定义设置的不是预定义
            //自定义设置请求头信息
            md.send('a:100&b:200')
            md.onreadystatechange = function(){
                if(md.readyState === 4)
                {
                    if(md.status >= 200 && md.status < 300)
                    {
                        ID.innerHTML = md.response;

                    }
                }
            }
        })
        
    </script>    
</body>
</html>

笔记

JSON响应事件:

鼠标按下事件onkeydown

    const data = {

        name:'deng'

    }

    //对data这个对象进行字符串转换

    let str = JSON.stringify(data)

                if(md.readyState === 4)
                {
                    if(md.status >= 200 && md.status < 300)
                    {
                        // console.log(md.response);
                        // ID.innerHTML = md.response;

                        //手动数据转换:
                        let data = JSON.parse(md.response)
                        console.log(data)
                        ID.innerHTML = data.name

                        //自动数据转换,就要设置响应体数据的类型
                        //md.responseType = 'Type'

                    }


    Json数据的响应
    需求:建立一个div框,在当前窗口下,当你按下鼠标中任意键,就会向服务端发起请求,服务器返回响应结果,然后我们把响应结果渲染在div
    <div style="width: 200px;height:100px;border:2px solid #f40" id="ID"></div>
    <script>
        const ID = document.getElementById('ID')
        window.onkeydown = function(){
            // console.log('1')
            const md = new XMLHttpRequest();
            md.responseType = 'json'
            md.open('POST','http://127.0.0.1:8000/json-server');
            md.send();
            md.onreadystatechange = function(){
                if(md.readyState === 4)
                {
                    if(md.status >= 200 && md.status < 300)
                    {
                        // console.log(md.response);
                        // ID.innerHTML = md.response;

                        //手动数据转换:
                        // let data = JSON.parse(md.response)
                        // console.log(data)
                        // ID.innerHTML = data.name

                        //自动数据转换,就要设置响应体数据的类型
                        ID.innerHTML = md.response.name
                        console.log(md.response)


                    }
                }
            }
        }
        



const express = require("express");
const app = express();
app.get('/server',(request,response) =>{
    response.setHeader('Access-Control-Allow-Origin','*')
    response.send('Hello Ajax')
});

//all:接受任意类型的请求 ->改post为all
app.all('/server',(request,response) =>{
    // *:表示所有的头信息我都可以接受
    response.setHeader('Access-Control-Allow-Origin','*')
    response.setHeader('Access-Control-Allow-Headers','*')
    response.send('你看到了这段话就是猪')
});

app.all('/json-server',(request,response) =>{
    // *:表示所有的头信息我都可以接受
    response.setHeader('Access-Control-Allow-Origin','*')
    response.setHeader('Access-Control-Allow-Headers','*')

    const data = {
        name:'deng'
    }
    //对data这个对象进行字符串转换
    let str = JSON.stringify(data)

    response.send(str)
});

app.listen(8000,()=>{
    console.log('start server...,port:8000')
})

取消请求:

<script>
        const btns =  document.querySelectorAll('button');
        let x = null;

        btns[0].onclick = function(){
            x = new XMLHttpRequest();
            x.open('GET','http://127.0.0.1:8000/delay');
            x.send();
        }

        btns[1].onclick = function(){
            console.log('1')
            x.abort();
        }
</script>



//针对网络延时
app.get('/delay',(request,response) => {
    response.setHeader('Access-Control-Allow-Origin','*')
    setTimeout(() => {
    response.send('overtime_response');
    },3000)
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值