如何用 fetch 发起 POST 请求
发布于 2025-03-15
基础用法
需要设置
body 和 headers...
常见错误
忘记 stringfy 数据会报 400...
header是页面或区块头部容器,nav专指主导航链接集合;article须独立可分发;section需带标题才具语义;正确语义标签提升SEO与无障碍访问。
header 是「页面或区块的头部内容容器」,不是「网站顶部导航栏专用标签」;nav 才专指「主导航链接集合」。常见错误是把整个顶部栏(logo + 搜索框 + 用户菜单 + 导航条)全塞进一个 header 里却不拆出 nav,这会让辅助技术无法识别可跳转的导航区域。
正确做法是:
header,不只限于页面最上方nav 包裹,哪怕它在 header 内部header 里可以没有 nav(比如纯标题+副标题),nav 也可以不在 header 里(比如底部导航)article 表示「可独立存在、可被单独订阅或重用的内容」,典型例子是博客正文、新闻稿、论坛帖子。它的核心判断标准是:把这段 HTML 单独拿出来,贴到另一个网站或 RSS 阅读器里,是否仍有完整意义?
容易踩的坑:
article 包裹整页布局(如首页所有栏目),违反「独立性」原则article 内硬塞 aside 广告位,但广告本身不属于该文章内容——应把广告移出 article,或改用 section + div
article,但整个列表本身用 main 或 section,而非再套一层 article
section 表示「有主题的文档区块」,必须带标题(h1–h6),否则语义失效。它不是为了替代 div 而生的「高级容器」,没标题就该用 div。
典型结构示例:
如何用 fetch 发起 POST 请求
发布于 2025-03-15
基础用法
需要设置
body 和 headers...
常见错误
忘记 stringfy 数据会报 400...
注意:section 的 h2 是它自己的标题,不是 article 的子标题——它们共同构成文档大纲(outline),浏览器和读屏软件靠这个生成导航树。
所有主流浏览器都支持 header、nav、article、section,IE9+ 也基本可用。真正影响体验的是语义缺失后的降级行为:比如老版本读屏器可能忽略 nav,但加上 role="navigation" 就能识别。
实操建议:
nav 标签默认已带 role="navigation",无需重复写;但如果你用 div 模拟导航(不推荐),就必须手动加article 对应 role="article",同样内置,不用额外加section 主题不够明确(比如「相关推荐」模块),建议加 aria-label="相关文章" 辅助说明语义标签的价值不在视觉,而在 DOM 结构的可解析性——写对了,调试时看 Elements 面板就能一眼看出内容骨架,而不是满屏 div 套娃。