分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

ajax1.0_2.0

发布时间:2023-09-06 02:34责任编辑:白小东关键词:暂无标签
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

原文地址:https://www.cnblogs.com/xqzi/p/10472915.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved