You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Content-Type为application/json的跨域POST请求被视为不安全?

为什么application/json跨域请求需要预检?

CORS里的「安全请求」(无需预检的简单请求),是根据早期浏览器默认允许跨域发送的请求类型定义的——在CORS规范出台前,浏览器本来就允许跨域提交表单,而表单默认的Content-Type就是application/x-www-form-urlencoded、multipart/form-data或text/plain这三种,所以它们被归为安全范畴。

那application/json为啥被划成不安全的?核心是两点:

  • 它不是传统表单提交的标准类型,早期服务器基本只针对表单类请求做了安全校验,对application/json的处理逻辑往往不一样,甚至完全没考虑过跨域场景。
  • 如果直接放行这类跨域请求而不做预检,恶意网站可能诱导用户浏览器向目标服务器发送json格式的请求,执行修改数据、删除资源这类敏感操作——服务器要是没额外校验,可能会把这个跨域请求当成合法同源请求处理,直接中招。

预检请求(OPTIONS)就是提前跟服务器打个招呼:「我接下来要发个非简单请求,你允许吗?」,服务器明确许可后,浏览器才会发实际的POST请求,相当于多了一道安全验证,防止服务器被恶意跨域请求偷袭。

内容的提问来源于stack exchange,提问作者Stefan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:22:11