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

网站制作网络推广方案购物网站需要做的功能

网站制作网络推广方案,购物网站需要做的功能,个人怎么成立公司,沈阳网站建设公司的公司在使用 Next.js 开发时,开发者经常会面临一个问题:前端的数据提交应该直接 Fetch 调用 API 还是使用 Next.js 提供的 Server Action 提交? 本文将深度解析: ✅ Server Action 提交数据的工作原理✅ 前端 Fetch 提交数据的优缺点…

在使用 Next.js 开发时,开发者经常会面临一个问题:前端的数据提交应该直接 Fetch 调用 API 还是使用 Next.js 提供的 Server Action 提交?
在这里插入图片描述

本文将深度解析:

  • Server Action 提交数据的工作原理
  • 前端 Fetch 提交数据的优缺点
  • Server Action 的优缺点
  • 什么时候该用哪种方式
  • 最优推荐实践

✅ 1. 什么是前端 Fetch 提交?

前端 Fetch 提交,指的是在 React 组件中,使用原生 fetchaxios 请求,直接将数据提交到后端 API(如 Strapi)。

示例代码:

'use client';export default function Home() {const handleSubmit = async (e) => {e.preventDefault();const res = await fetch('http://localhost:1337/api/users', {method: 'POST',headers: {'Content-Type': 'application/json'},body: JSON.stringify({ name: '张三' })});const data = await res.json();console.log(data);};return (<form onSubmit={handleSubmit}><input type="text" name="name" /><button type="submit">提交</button></form>);
}

✅ 数据流:

[前端 React] -> [Strapi API] -> [数据库 MySQL]

✅ 优点:

  • 📜 开发简单,只需写 fetch 请求。
  • 🚀 直接连接 API,无需配置中间层。

✅ 缺点:

  1. 存在 CORS 跨域问题

    • 请求地址是 http://localhost:1337,而前端地址是 http://localhost:3000
    • 必须配置 CORS,或者部署 Nginx 反向代理,增加开发难度。
  2. Token 暴露

    • 如果你的 API 需要 Token,所有 Token 都暴露在前端请求中。
    • 任何人只要打开控制台,就可以拿 Token 调用你的 API。
  3. 接口地址暴露

    • API 地址暴露在浏览器网络请求中,黑客可以直接调用。
  4. 不安全

    • 恶意用户可以伪造请求,不断写入垃圾数据。

✅ 2. 什么是 Server Action 提交?

Server Action 是 Next.js 14+ 提供的一种内置特性,它允许你直接在服务器上处理表单提交,避免数据流直接暴露在前端。

示例代码:

app/actions.js

'use server';export async function handleSubmit(formData) {const name = formData.get('name');const res = await fetch('http://localhost:1337/api/users', {method: 'POST',headers: {'Content-Type': 'application/json'},body: JSON.stringify({ data: { name } })});return res.json();
}

app/page.js

'use client';
import { handleSubmit } from './actions';export default function Home() {return (<form action={handleSubmit}><input type="text" name="name" /><button type="submit">提交</button></form>);
}

✅ 数据流:

[前端 React] -> [Next.js Server Action] -> [Strapi API] -> [数据库 MySQL]

✅ 优点:

  1. 没有 CORS 跨域问题

    • 请求是由服务器发起的,因此不会产生跨域问题。
  2. Token 不会暴露

    • Token 存在 Server Action 中,前端完全看不到。
  3. API 地址完全隐藏

    • 前端看不到 Strapi API 地址,黑客无法直接调用 API。
  4. 更安全

    • 数据提交过程在服务端完成,前端无法篡改数据。
  5. 部署更简单

    • 不需要配置 CORS 或 Nginx 代理。

✅ 缺点:

  • 💡 需要学习和理解 Server Action 的工作原理。
  • 💡 Server Action 只能在 Next.js 项目中使用。

✅ 3. Fetch 提交 vs Server Action 提交(对比表格)

特性Fetch 提交Server Action 提交
CORS 跨域✅ 有跨域❌ 无跨域
Token 安全性💀 Token 暴露🛡 Token 隐藏
API 地址暴露💀 地址可见🛡 地址隐藏
数据安全性💀 易被篡改🛡 服务器控制
开发复杂度🚶‍♂️ 较低🚀 中等
适用场景展示数据、无敏感操作提交数据、敏感数据

✅ 4. 什么时候用 Fetch?什么时候用 Server Action?

✅ 使用 Fetch 提交数据的场景:

场景推荐方式
获取公开数据✅ Fetch
查询文章/列表数据✅ Fetch
静态数据展示✅ Fetch

理由

  • 公开数据没有安全性问题;
  • Token 不需要隐藏;
  • 请求失败不会导致严重后果。

✅ 使用 Server Action 提交数据的场景:

场景推荐方式
提交表单数据✅ Server Action
用户登录/注册✅ Server Action
上传文件✅ Server Action
支付信息提交✅ Server Action
Token 验证✅ Server Action

理由

  • Server Action 可以隐藏 Token;
  • API 地址完全隐藏;
  • 安全性最高。

✅ 5. 总结

如果你的项目是 公开展示数据,推荐直接使用 fetch。如果是 提交敏感数据,推荐使用 Server Action

✅ 推荐最佳实践:

操作类型推荐方式
读取公开数据Fetch 请求
提交表单数据Server Action
上传文件Server Action
登录/注册Server Action

通过掌握 Server Action,你的 Next.js 项目将更加安全、可控、简洁。


文章转载自:

http://texWs6ZZ.srbfz.cn
http://rvlu9IFk.srbfz.cn
http://GrcmUIri.srbfz.cn
http://bkchFRZl.srbfz.cn
http://4iFI8Qaj.srbfz.cn
http://g7EBzMmy.srbfz.cn
http://uYZTbomK.srbfz.cn
http://fj2Z0vyr.srbfz.cn
http://2vrqVYq2.srbfz.cn
http://Vjl0avq9.srbfz.cn
http://trKNQzSG.srbfz.cn
http://aiwesSUG.srbfz.cn
http://wBMCZlDf.srbfz.cn
http://uCuOtmIa.srbfz.cn
http://3PK2p46y.srbfz.cn
http://lY38v1GK.srbfz.cn
http://alhbjNCz.srbfz.cn
http://ox6TvGkC.srbfz.cn
http://ckwtW8wY.srbfz.cn
http://pMrpie1T.srbfz.cn
http://juByIWGq.srbfz.cn
http://PBNB3qa8.srbfz.cn
http://bXRWl5zT.srbfz.cn
http://jwTL5jm2.srbfz.cn
http://XtQ0ci5U.srbfz.cn
http://XdS338R2.srbfz.cn
http://Azox2PxA.srbfz.cn
http://meSJ7H4Y.srbfz.cn
http://OF1NvnsH.srbfz.cn
http://iI6U1g33.srbfz.cn
http://www.dtcms.com/wzjs/672138.html

相关文章:

  • 常州高端网站建设长兴县住房和城乡建设局 网站
  • 南京网站设计课程校园交友的网站建设
  • 广州展厅设计企业展厅设计公司网站整站优化推广方案
  • 美食网页制作代码网络优化是做啥的
  • 创新的企业网站开发汕头网站优化系统
  • 找网上公司做网站建设租房信息网站
  • 做网站用什么软件做网站软件免费下载安装
  • 优化网站做什么的涂料网站设计公司
  • 四大门户网站建设部网站是什么网站
  • 网站站长在哪登陆后台seo哪家公司好
  • 响应式网站模板 视差自己做免费的网站
  • 阿里云wordpress搭建网站网站在线咨询怎么做
  • 网站开发项目架构说明书wordpress多语言界面
  • 代做网站优化阿里云虚拟主机做网站
  • 建设网站 费用吗建筑公司财务做账流程
  • 软件开发资源网站秦皇岛商联网络科技有限公司
  • 免费手机网站自助建站眯眯扑克app哪个公司开发
  • 营销型网站的布局360极速浏览器网站开发缓存
  • 如何增加网站会员高端网咖
  • 色彩设计网站什么是网络社交平台
  • 企业网站建设介绍万户网站建设
  • 青岛网站建设有哪些公司网站多久才会被收录
  • ppt怎么做网站杭州强龙网站建设电话
  • 学做网站论坛第六节网页设计期末考试作品
  • 深圳手机网站建设哪家好单网页网站 企业
  • win本地网站建设asp.net网站开发实例视频教程
  • 下载ps软件免费版下载安装网站内部seo
  • 广州seo网站多少钱一站式服务门户
  • 钓鱼网站查询系统做淘宝网站需要
  • 租用外国服务器网站网站建设wordpress主题安装教程