Ajax学习:原生jsonp实践

输入内容:丧失焦点 向服务器发送请求 对用户名做是否存在的检测  并且改变框的颜色

 

 服务端:

const {
	json
} = require('express');
const express = require('express')

const app = express();
app.get('/home', function(requset, response) {
	//设置响应头 名称 值----设置允许跨域
	// response.setHeader('Access-Control-Allow-Origin','*');
	//设置响应体
	response.sendFile(__dirname + '/同源策略.html'); //绝对路径
})
app.get('/data', function(requset, response) {
	//设置响应头 名称 值----设置允许跨域
	// response.setHeader('Access-Control-Allow-Origin','*');
	//设置响应体
	response.send('用户数据'); //绝对路径
})
app.get('/jsonp', function(requset, response) {
	//response.send('a');
	const data = {
		name: '张三啊'
	};
	//将数据转化为字符串
	let str = JSON.stringify(data);
	//返回结果 不可以是数据 j代码 end防止添加不知名的响应头 模板字符串是需要传递字符串的
	//``模板字符串 方便拼接
	//${str}这里的是对象
	response.end(`handle(${str})`)

})
app.get('/check-username', function(requset, response) {

	const data = {
		exist: 1,
		msg: '用户名已经存在'
	};
	//将数据转化为字符串
	let str = JSON.stringify(data);
	//返回结果 不可以是数据 j代码 end防止添加不知名的响应头 模板字符串是需要传递字符串的
	//``模板字符串 方便拼接
	//${str}这里的是对象
	response.end(`handle(${str})`);//返回函数的调用 然后进行解析处理

})

app.listen(9000, () => {
	console.log('9000启动成功')
})

前端页面: 

<!DOCTYPE html>
<html lang="zh">
	<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>Document</title>
	</head>
	<body>
		用户名:<input type="text" id="username">
		<p></p>
		<script>
			const input = document.getElementById('username');
			const p = document.querySelector('p');
			//声明handele函数
			function handle(data){
				input.style.border='red 1px solid';
				//修改提示文本
				p.innerHTML=data.msg;
					
			}
			input.onblur = function() { // onblur失去焦点时发生
				let username = this.value;//获取用户输入
				//向服务器发送请求 检测用户名是否存在
				//使用jsonp方式的重点就是依靠scrip标签
				const script=document.createElement('script');
				//设置src属性
				script.src="http://127.0.0.1:9000/check-username";
				//将script插入文档中
				document.body.appendChild(script)
				

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值