当前位置: 首页 > news >正文

建设网站时的常见故障分类广州专业展台制作

建设网站时的常见故障分类,广州专业展台制作,cida室内设计师资格证,怎么建设一个微信网站简介 AJAX 全称为 Asynchronous JavaScript And XML#xff0c;就是异步的 JS 和 XML(现在已经基本被json取代)。通过 AJAX 可以在浏览器中向服务器发送异步请求#xff0c;最大的优势#xff1a;无刷新获取数据。AJAX 不是新的编程语言#xff0c;而是一种将现有的标准组…简介 AJAX 全称为 Asynchronous JavaScript And XML就是异步的 JS 和 XML(现在已经基本被json取代)。通过 AJAX 可以在浏览器中向服务器发送异步请求最大的优势无刷新获取数据。AJAX 不是新的编程语言而是一种将现有的标准组合在一起使用的新方式。 优点 无需刷新页面即可与服务器进行通信。允许根据用户事件来更新部分页面内容。 缺点 没有浏览历史不能回退存在跨域问题ajax默认是遵循同源策略跨域请求是无法通过ajax请求的seo不友好无法通过爬虫获取到ajax请求的数据也无法在浏览器的源代码选项中获取到相关的源码 总而言之ajax不是什么新鲜的对象我们把它当作是在一个已有的网页中我们可以通过它请求后端的数据来显示在之前的网页中。 AJAX的使用 GET请求 btn.onclick function(){//1. 创建对象const xhr new XMLHttpRequest();//浏览器开发者选项中的xhr里面的信息就是该页面的ajax请求//2. 初始化 设置请求方法和 urlxhr.open(GET, http://127.0.0.1:8000/server?a100b200c300);//3. 发送xhr.send();//4. 事件绑定 处理服务端返回的结果xhr.onreadystatechange function(){//判断 (服务端返回了所有的结果)if(xhr.readyState 4){// 2xx 成功if(xhr.status 200 xhr.status 300){//响应 // console.log(xhr.status);//状态码// console.log(xhr.statusText);//状态字符串// console.log(xhr.getAllResponseHeaders());//所有响应头// console.log(xhr.response);//响应体//设置 result 的文本result.innerHTML xhr.response;}else{}}}}POST请求 result.addEventListener(mouseover, function(){//1. 创建对象const xhr new XMLHttpRequest();xhr.responseTypejson//2. 初始化 设置类型与 URLxhr.open(POST, http://127.0.0.1:8000/server);//有时候ie浏览器会有缓存问题因此通常情况下最好给每个url拼接上一个时间戳参数//设置请求头xhr.setRequestHeader(Content-Type,application/x-www-form-urlencoded);xhr.setRequestHeader(name,xxx);//自定义的请求头需要在后端中设置Access-Control-Allow-Headers响应头//3. 发送xhr.send(a100b200c300);// xhr.send(a:100b:200c:300);// xhr.send(1233211234567);//4. 事件绑定xhr.onreadystatechange function(){//判断if(xhr.readyState 4){if(xhr.status 200 xhr.status 300){//处理服务端返回的结果result.innerHTML xhr.response;}}}});超时与网络异常问题 btn.addEventListener(click, function(){const xhr new XMLHttpRequest();//超时设置 2s 设置xhr.timeout 2000;//超时回调xhr.ontimeout function(){alert(网络异常, 请稍后重试!!);}//网络异常回调xhr.onerror function(){alert(你的网络似乎出了一些问题!);}xhr.open(GET,http://127.0.0.1:8000/delay);xhr.send();xhr.onreadystatechange function(){if(xhr.readyState 4){if(xhr.status 200 xhr.status 300){result.innerHTML xhr.response;}}}})重复请求问题——关键在于设置一个标志位 script//获取元素对象const btns document.querySelectorAll(button);let x null;//标识变量let isSending false; // 是否正在发送AJAX请求btns[0].onclick function(){//判断标识变量if(isSending) x.abort();// 如果正在发送, 则取消该请求, 创建一个新的请求x new XMLHttpRequest();//修改 标识变量的值isSending true;x.open(GET,http://127.0.0.1:8000/delay);x.send();x.onreadystatechange function(){if(x.readyState 4){//修改标识变量isSending false;}}}// abortbtns[1].onclick function(){x.abort();}/script使用express框架搭建一个后端 //1. 引入express const express require(express);//2. 创建应用对象 const app express();//3. 创建路由规则 // request 是对请求报文的封装 // response 是对响应报文的封装 //all方法表示所有类型的请求都可以get、post、delete。。。 app.all(/server, (request, response){//设置响应//response.set(Access-Control-Allow-Origin,http://127.0.0.1:3000);//只对http://127.0.0.1:3000这个url的请求允许跨域response.setHeader(Access-Control-Allow-Origin,*)//对所有请求允许跨域response.setHeader(Access-Control-Allow-Headers,*)//允许各种请求头包括自定义的和http已经定义的请求头response.send(HELLO EXPRESS); });//4. 监听端口启动服务 app.listen(8000, (){console.log(服务已经启动, 8000 端口监听中....); });AJAX的请求状态 xhr.readyState 可以用来查看请求当前的状态 0: 表示 XMLHttpRequest 实例已经生成但是 open()方法还没有被调用。1: 表示 send()方法还没有被调用仍然可以使用 setRequestHeader()设定 HTTP请求的头信息。2: 表示send()方法已经执行并且头信息和状态码已经收到。3: 表示正在接收服务器传来的body部分的数据。4: 表示服务器数据已经完全接收或者本次接收已经失败了 跨域问题 同源策略 同源策略是浏览器的一种安全策略。所谓的同源是指协议、域名】端口号必须完全相同而违背同源策略就是跨域。 如果违背同源策略浏览器的开发者工具就会报如下错误该网页是从5500端口获取的但是ajax的请求却是8000端口。 解决跨域问题有两种方式 CORS CORSCross-Origin Resource Sharing跨域资源共享。CORS 是官方的跨域解决方案它的特点是不需要在客户端做任何特殊的操作完全在服务器中进行处理支持get 和 post 请求。跨域资源共享标准新增了一组 HTTP 首部字段允许服务器声明哪些源站通过浏览器有权限访问哪些资源CORS 怎么工作的 CORS 是通过设置一个响应头来告诉浏览器该请求允许跨域浏览器收到该响应以后就会对响应放行。 JSONP JSONP(JSON with Padding)是一个非官方的跨域解决方案只支持 get 请求。在网页有一些标签天生具有跨域能力比如img link iframe script。JSONP 就是利用 script 标签的跨域能力来发送请求的。 案例如下 !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0title案例/title /head body用户名: input typetext idusernamep/pscript//获取 input 元素const input document.querySelector(input);const p document.querySelector(p);//声明 handle 函数function handle(data){input.style.border solid 1px #f00;//修改 p 标签的提示文本console.log(data)p.innerHTML data.name;}//绑定事件input.onblur function(){//获取用户的输入值let username this.value;//向服务器端发送请求 检测用户名是否存在//1. 创建 script 标签const script document.createElement(script);//2. 设置标签的 src 属性script.src http://127.0.0.1:8000/server;//3. 将 script 插入到文档中document.body.appendChild(script);}/script /body /html//1. 引入express const express require(express);//2. 创建应用对象 const app express();//3. 创建路由规则 // request 是对请求报文的封装 // response 是对响应报文的封装 app.all(/server, (request, response){//设置响应// response.setHeader(Access-Control-Allow-Origin,*)// response.setHeader(Access-Control-Allow-Headers,*)const data {name: sdsdsd};response.end(handle(${JSON.stringify(data)}));//这样就会回调到html中的handle方法 });//4. 监听端口启动服务 app.listen(8000, (){console.log(服务已经启动, 8000 端口监听中....); });最后 除了前面介绍的几个字ajax的请求之外fetch函数也是可以用来进行ajax请求的 https://developer.mozilla.org/zh-CN/docs/Web/API/fetch
http://www.hkea.cn/news/14294369/

相关文章:

  • asp.net mvc5网站开发之美昆明企业免费建站
  • 东莞寮步网站建设上海网站建设备案号怎么恢复
  • 建个人网站需要钱嘛网站的大小
  • php空间放多个网站公司建设网站多少钱
  • qt 网站开发东莞大型企业
  • 长沙网络推广小公司深圳seo优化推广
  • 青岛网站建设哪个好wordpress iis7
  • 营销型网站设计模板网站预算表怎么做
  • 如何将vs做的网站备份出来网络推广宣传方式
  • 招商局网站建设管理总结优化关键词可以选择哪个工具
  • 建设平台网站协议品牌建设 网站
  • 网站h标签新手怎么做网站
  • 公司网站开发 flask公司网站找谁做
  • wordpress 站库分离如何做网站诊断
  • 1有免费建网站卡盟网站怎么做图片
  • 网站建设售后服务承诺书惠州企业建站程序
  • 赣州的免费网站建设wordpress修改菜单内容
  • 政务信息网站建设制度网站服务器空间选择
  • 做seo要明白网站内容阿里云服务器搭建网站
  • 做网站放太多视频惠山做网站公司
  • 卢镇seo网站优化排名南通网站建设方案开发
  • 服务器发布网站网络公司产品
  • 网站怎么做宣传小程序如何开发制作
  • 用vs做音乐网站济源市城乡建设局网站
  • 分形科技做网站怎么样百度云网站开发怎样开网站
  • 三亚旅游网站建设知名网站规划
  • 宜春网站制作公司网站整体地图怎么做
  • 网站公告模板代码网络公司排名图
  • 南阳做网站多少费用网站用什么东西做
  • 寮步做网站系统管理网站