热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前后端分离

如何用js发送HTTP请求ajax(AsynchronousJavascriptAndXml),俗称的ajax就是指通过js发送HTTP请求并处理得到的响应ajax有很多种,我们会




如何用js发送HTTP请求

ajax (Asynchronous Javascript And Xml),俗称的ajax就是指通过js 发送HTTP请求并处理得到的响应

ajax有很多种,我们会其中一种即可: 使用 XMLHttpRequest 对象进行处理

var xhr = new XMLHttpRequest();
xhr.open("GET". " /user-list.json");//发送GET或者POST都可以
xhr.send(); /发送请求

在这里插入图片描述

为了安全,默认只允许在同域页面下发送ajax,如 www.baidu.com/hello,只能在www.baidu.com的页面上发送ajax


如何处理接收到的响应

XMLHttpRequest 提供了几种事件,但只关心load事件

oReq.addEventListener("load", reqListener);
oReq.Onload= reqListener;

在响应成功时执行:

xhr.Onload= function(){...}

xhr.send()之前,为xhr 的load事件绑定处理逻辑

xhr.Onload= function() {
xhr.responseText;//得到响应正文
this.responseText;//得到响应正文
//xhr == this;
};

在这里插入图片描述
JSON的优势
在js可以通过json格式的文本,直接得到js对象、数组、其他类型的数据

JSON.parse(json文本);//解析JSON文本,得到js数据
xhr.Onload= function () {
var r = JSON.parse(this.responseText);
console.log(r);
}

数组样式
在这里插入图片描述


结合js的修改DOM的功能+ ajax的功能,我们可以做到利用js,从后端获取数据,并修改页面展示的效果!


















ID姓名年龄




在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


前后端分离


  • 前后端分离:前端和后端之间,以HTTP协议作为数据载体,以JSON作为数据格式,进行职责分离的一种技术方案!(当下流行的前后端分离的技术方案90%以上的做产品都是前后端方式)

在这里插入图片描述


  • 由于前端的逻辑变得负责了,前端也出现了很多框架,降低应用复杂性比如vue …
    后端基本退化成类似数据库管理系统的角色只负责提供权限校验、数据的增删查改等功能

  • 开发一个大型产品是需要很多人一起配合完成的,比如中型项目,需要5-10个人
    早期方案,后端负责生成HTML内容,并且需要完成基本的js操作(5-10个人需要学html、css、 js、java)
    前后端分离的方案:后端负责提供数据,前端负责获取、展示数据
    【前端组(5人)】 : html、css、js、http
    【后端组(5人)】: java、http


通过ajax向后端发送数据

发送JSON格式的数据
在这里插入图片描述
举例:



在java中,把所有的外设数据源(非内存数据)都抽象成一个个的输入流〈(InputStream)



响应的重定向(redirect)

direct(指定方向) ,重定向也叫跳转(从浏览器看起来的行为)

重定向的概念分类:


  1. 临时重定向(买白菜,白菜最近没有,3、5天以后才有,最近先买菠菜)
  2. 永久重定向(买石头记,因为改名,以后应该永远买红楼梦)

是否保留方法


  1. 保留方法的重定向
  2. 不保留方法的重定向
    在这里插入图片描述

HTTP协议怎么实现重定向:
通过状态码(3XX)+响应头(Location:重定向后的资源URL)


3XX =>区分:永久vs临时,保留vs不保留
在这里插入图片描述



  • 请求发表文章资源时,需要用户先登录
    当用户没有登录时,重定向到登陆页面
    当用户登录成功时,重定向到首页


推荐阅读
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
神烟醉_263
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有