【Ajax】笔记-原生jsonp跨域请求案例

原生jsonp跨域请求

输入框:输入后,鼠标移开向服务端发送请求,返回用户不存在(直接返回不存在,不做判断)

JS

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>案例</title>
</head>
<body>
    用户名: <input type="text" id="username">
    <p></p>
    <script>
        //获取 input 元素
        const input = document.querySelector('input');
        const p = document.querySelector('p');
        
        //声明 handle 函数
        function handle(data){
            input.style.border = "solid 1px #f00";
            //修改 p 标签的提示文本
            p.innerHTML = data.msg;
        }

        //绑定事件
        input.onblur = function(){
            //获取用户的输入值
            let username = this.value;
            //向服务器端发送请求 检测用户名是否存在
            //1. 创建 script 标签
            const script = document.createElement('script');
            //2. 设置标签的 src 属性
            script.src = 'http://127.0.0.1:8000/check-username';
            //3. 将 script 插入到文档中
            document.body.appendChild(script);
        }
    </script>
</body>
</html>

服务

javascript 复制代码
//用户名检测是否存在
app.all('/check-username',(request, response) => {
    // response.send('console.log("hello jsonp")');
    const data = {
        exist: 1,
        msg: '用户名已经存在'
    };
    //将数据转化为字符串
    let str = JSON.stringify(data);
    //返回结果
    response.end(`handle(${str})`);
});

测试

相关推荐
雪芽蓝域zzs10 小时前
第三节:目录结构重构(仿若依,优化层级,layout 与 components 同级)
前端·vue.js·重构
米饭不加菜11 小时前
一些常用模块简介
经验分享·笔记·嵌入式硬件
sunshine22 girl11 小时前
Angular7,9,学习笔记三 dom操作
笔记·学习·angular
子非鱼a11 小时前
【WEB】[NewStarCTF 公开赛赛道]UnserializeOne
前端·javascript·html
南雨北斗11 小时前
Vue3 v-model中的自动事件绑定
前端
小+不通文墨13 小时前
使用vscode里的U8G2 库编写OLED菜单控制
经验分享·笔记·单片机·嵌入式硬件·学习
雪芽蓝域zzs13 小时前
第八节:Element Plus 基础、封装通用组件 + 路由守卫
前端·vue.js
码视野13 小时前
基于 Spring Boot + Vue3 的【智慧公厕微负压排风除臭与客流人感空间占用导引中台】设计与实现(含PRD/三端高保真源码/大屏)
前端·vue.js·人工智能·spring boot·后端
葡萄成熟时 !13 小时前
泛型知识笔记
开发语言·笔记·python
北风toto13 小时前
扩展操作码技术 · 详细笔记
运维·服务器·笔记·软件设计师