初识前后端数据交互(新手篇)

一个软件项目的开发必然是离不开前端和后端的协作,对于刚入行的新手前端或者新手后端来说,很有必要了解一下对方是在做什么,以及提供给自己什么样的帮助,为什么需要对方共同协作才能完成整个软件项目的开发呢?希望这篇博客可以让你初步了解一下。

1.前端和后端的定位 

        Long long ago 是没有严格意义上的前后端区分,有的就是一个程序员直接把前后端全做了。也就是我们现在所说的全栈。与之相关的语言就是如jsp,php这类的脚本语言。既可以提供后端服务,又可以在客户端提供渲染。因此在那个群魔并起的时期,前端页面中总是会穿插大量的后端脚本渲染语句。随着项目复杂度不断增加,维护起来也是难上加难。后面,才有了将前后端分开的开发理念。

        前端,通俗的理解就是做面向客户端的工作。比如各种跨端的页面。因为是要写页面,涉及到页面的布局,效果以及色彩相关,而这些工作又是由UI设计来完成,所以与之工作交流最多的就是UI设计了。所以,千万别得罪UI哦,小心她给你设计一个五彩斑斓的黑。刚开始学前端的时候,只知道写页面,数据交互哪些都是不懂的。所以也叫页面仔。这是所有入门前端的第一步。暂且不提,当页面写好了,第二步就是和后端协同做对接。

        后端,用户在使用软件和网站的时候,只能看到页面。而页面又是前端和UI设计的结果,因此,后端其实是有一个和客户有隔代沟通的障碍。换而言之,后端是一个在背后默默付出的职业。但是在整个软件开发项目中,却是个不容忽视的存在。因为有他的存在,你的页面才能“活”起来。

        通俗理解,前端写页面,提供给用户使用。用户可以看到设计出的精美页面,但是,这只是视觉上的效果,功能呢?假如用户要看一篇文章。文章的内容前端可以直接写到页面里,作为页面的一部分。但是假如有一百篇文章呢?难不成写一百个页面吗?明明只是内容的差异而已,布局和色调都是一样的。所以,这个时候就需要后端的帮助了,让数据变得动态。

        前者内容都写在页面中,改变不了。没有和后端进行动态的数据交互,所以这类的前端页面统称静态页面。后面通过数据交互,让数据从后端返回,前端再写入页面上。数据就动态了。至于数据为什么经过后端的返回就动态了,看下面这个就懂了。

                                  前端页面————后端服务————数据库

简单粗暴的理解就是:

对于前端而言:根据你的需求,让后端返回对应的数据。来丰富你的页面功能。

对于后端而言:前端需要啥,我给啥就行。有些数据涉及到隐私,你得拿东西(请求参数)来换

2.php数据交互示例

前端代码:index.html

<!DOCTYPE html>
<html><meta charset="utf-8">
<head><title>Axios Example</title><script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body><button onclick="sendRequest()">发送请求</button><script>function sendRequest() {axios.get('http://localhost/api.php').then(function (response) {console.log(response.data);}).catch(function (error) {console.error(error);});}</script>
</body>
</html>

php后端代码:api.php

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
header('Access-Control-Allow-Headers: Content-Type');if ($_SERVER['REQUEST_METHOD'] === 'GET') {$data = array('message' => 'Hello, world!','timestamp' => date('Y-m-d H:i:s'));echo json_encode($data);
} else {// 处理其他HTTP请求方法的代码...
}

3.node数据交互示例

前端代码:index.html    请求路径修改成node服务启动的路径:http://localhost:3000

node后端代码:node.js

const express = require('D:/nodejs/node_modules/express');
const app = express();// 定义路由和处理程序
app.get('*', (req, res) => {res.setHeader('Access-Control-Allow-Origin', '*'); // 允许所有来源访问,也可以指定具体的来源res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); // 允许的 HTTP 请求方法res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); // 允许的请求头字段const data = {message: 'Hello, world!',timestamp: new Date().toISOString()};res.json(data);
});// 启动服务器
const port = 3000;
app.listen(port, () => {console.log(`Server is running on port ${port}`);
});

4.效果展示

点击发送请求,从后端就会返回对应的数据,这里因为示例中没有涉及到数据库,所以返回的数据是在后端代码中定义死的。仅做示例,通过这两个例子,能初步了解前后端的数据交互。

5.数据交互须知

         这里只是用到了最简单的一个数据返回例子,但是在前后端数据相互的过程中有两大拦路虎。请求参数跨域。这个是前后端交互中不可避免也必须要解决的两大问题。跨域的解决方式有很多,比如:代理服务器,JSONP,CORS,服务器端设置允许跨域等。请求参数主要和请求方法及Content-Type相关。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在PostGIS中进行点数据的等值线提取

说明 介绍在PostGIS中从点数据提取等值线。 关键字&#xff1a; raster、point、PostGIS、等值线 环境准备 Postgresql版本&#xff1a;PostgreSQL 14.0, 64-bitPostGIS版本&#xff1a;POSTGIS"3.3.2"QGIS版本&#xff1a;3.28.3-Firenze&#xff08;验证用&…

浅谈安科瑞ASJ继电器在马尔代夫环岛水上排屋的应用

摘要&#xff1a;对电气线路进行接地故障保护&#xff0c;方式接地故障电流引起的设备和电气火灾事故越来越成为日常所需。针对用户侧主要的用能节点&#xff0c;设计安装剩余电流继电器&#xff0c;实时监控各用能回路的剩余电流状态。通过实时监控用能以及相关电力参数、提高…

长期用台灯影响视力吗?备考专用护眼台灯推荐

大家都知道台灯作为一种小范围的桌面照明灯具&#xff0c;在夜晚能给我们带来很大的帮助&#xff0c;不管是办公、还是学习、阅读都需要它提供照明。那么长期使用台灯会影响视力吗&#xff1f;其实台灯一般都眼睛都是没有伤害的&#xff0c;真正对眼睛有伤害的是不正确的使用台…

C++学习之路(七)C++ 实现简单的Qt界面(消息弹框、按钮点击事件监听)- 示例代码拆分讲解

这个示例创建了一个主窗口&#xff0c;其中包含两个按钮。第一个按钮点击时会显示一个简单的消息框&#xff0c;第二个按钮点击时会执行一个特定的操作&#xff08;在这个例子中&#xff0c;仅打印一条调试信息&#xff09;。 功能描述&#xff1a; 创建窗口和布局&#xff1a;…

Java 文件常用操作与流转换

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

前端项目部署自动检测更新后通知用户刷新页面(前端实现,技术框架vue、js、webpack)——方案一:编译项目时动态生成一个记录版本号的文件

前言 当我们重新部署前端项目的时候&#xff0c;如果用户一直停留在页面上并未刷新使用&#xff0c;会存在功能使用差异性的问题&#xff0c;因此&#xff0c;当前端部署项目后&#xff0c;需要提醒用户有去重新加载页面。 技术框架 vue、js、webpack 解决方案 编译项目时动…

内网隧道学习

默认密码&#xff1a;hongrisec2019 一.环境搭建 网卡学习 一个网卡一个分段&#xff0c;想象成一个管道 192.168.52一段 192.168.150一段 仅主机模式保证不予外界连通&#xff0c;保证恶意操作不会跑到真实机之上 52段是内部通信&#xff0c;150段属于服务器&#xff08;…

PC8231(CC/CV)5V/2.4A同步降压芯片 频率可调 限流欠压补偿

一&#xff0e;概述 PC8231 是一款同步降压转换器&#xff0c; 该转换器可驱动输出 2.4A 负载电流。 设计允许 PC8231 在 9V 到40V 宽输入电压范围内工作。通过将 COMP/EN 引脚逻辑电平拉低来实现外部关断功能&#xff0c;并进入待机模式。外部补偿使反馈控制环路具有良好的线…

CRM的智能招投标对企业有什么意义?

如今CRM系统的生态系统越来越壮大&#xff0c;这些工具的集成极大地丰富了CRM系统的应用场景&#xff0c;例如CRM系统集成企业微信等社交媒体为获客提供便利&#xff1b;再比如CRM集成ChatGPT提高邮件内容质量&#xff0c;对于经常接触招投标项目的业务人员来说&#xff0c;在C…

英特尔工作站:助力专业用户实现高效创作

原创 | 文 BFT机器人 英特尔工作站是由全球知名的英特尔公司设计和开发的一款计算平台。英特尔在工作站处理器领域将其产品分为性能型和移动型两类&#xff0c;它的诞生旨在满足专业用户在科学、工程、设计等领域对高性能计算的需求。英特尔工作站配备了最新的英特尔处理器、大…

EI期刊论文复现:考虑电动汽车可调度潜力的充电站两阶段市场投标策略程序代码!

本程序代码参考EI期刊论文《考虑电动汽车可调度潜力的充电站两阶段市场投标策略》&#xff0c;程序中基于历史数据评估可调度潜力&#xff0c;由联合报价模型确定节点边际电价&#xff0c;作为报价的参考&#xff0c;包含个体竞价模式&#xff0c;纳什博弈竞价&#xff0c;算例…

docker (简介、dcoker详细安装步骤)- day01

一、 为什么出现 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build&#xff0c;Ship and Run Any App,Anywhere”&#xff0c;也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理&#xff0c;使用户的APP&#xff08;可以是一个WEB应用或数据库应…

Git远程仓库常用开发命令和理解

远程仓库 创建与合并分支 每次提交&#xff0c;Git都把它们串成一条时间线&#xff0c;这条时间线就是一个分支。截止到目前&#xff0c;只有一条时间线&#xff0c;在Git里&#xff0c;这个分支叫主分支&#xff0c;即master分支。 HEAD严格来说不是指向提交&#xff0c;而…

01.vue3大事件——项目初始化、技术介绍

后台数据管理系统 - 项目架构设计 在线演示&#xff1a;https://fe-bigevent-web.itheima.net/login 接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 接口根路径&#xff1a; http://big-event-vue-api-t.itheima.net 本项…

工作流能实现自动化吗?应该用什么工具?

研究显示&#xff0c;CRM系统工作流自动化软件不仅能简化冗余的工作且不需要监控和指导就能提高员工的工作效率。企业需要工作流自动化软件吗&#xff1f;答案是肯定的&#xff0c;工作流自动化的好处有哪些&#xff1f; 为什么企业需要工作流自动化软件 每家企业都希望降本增…

企业营销管理能够实现自动化吗?怎么做?

当今企业面临着越来越多的营销难题&#xff1a;如何有效培育潜在客户、如何提高营销活动的效果、如何优化营销资源的分配......企业的营销管理怎么做&#xff1f;或许CRM系统营销自动化会起到作用。 客户细分&#xff1a; 企业可以通过CRM的客户细分功能&#xff0c;根据客户…

内衣洗衣机和手洗哪个干净?最好用的迷你洗衣机

随着大家工作的压力越来越大&#xff0c;下了班之后只能想躺平&#xff0c;在洗完澡之后看着还需要手洗的内衣裤真的很头疼。有些小伙伴还有会攒几天再丢进去洗衣机里面一起&#xff0c;而且这样子是非常不好的&#xff0c;用过的内衣裤长时间不清洗容易滋生细菌&#xff0c;而…

单片机学习3——数码管

数码管&#xff0c;根据内部结构&#xff0c;可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点&#xff0c;共计8段。因此&#xff0c;我们对它编程的时候&#xff0c;刚好是用一个字节。 数码管的显示方式&#xff1a; 1&#xff09;静态显示&#xff1b; 2&…

QT网络协议知识体系(一)

//获取主机的名称和ip地址 //获取主机的所有信息

终于等到你!常用的组织架构图模板,高清图片一键导出

组织架构图是一种用来展示一个组织内部人员和职责关系的图表。通过组织架构图&#xff0c;我们可以清晰地了解一个组织的层级架构和各个部门之间的关系。在本文中&#xff0c;我们将向大家推荐8个常用的组织架构图模板&#xff0c;帮助你快速制作出专业的组织架构图。 1. 市场营…