V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cpstar
V2EX  ›  问与答

POST 获得 403 而 GET 正常?浏览器新版本又有什么新特性了?

  •  
  •   cpstar · 2022-06-22 23:25:49 +08:00 · 1518 次点击
    这是一个创建于 868 天前的主题,其中的信息可能已经有所发展或是发生改变。
    症状:
    AJAX 调用服务器获取 JSON ,几个主要参数使用 querystring 形式,使用 GET 一切正常,但是 POST 则直接 403

    推敲:
    反复试验,因为甭管 GET 还是 POST ,参数全都通过 querystring 提供,实际并没有 POST BODY 。
    刚开始怀疑服务器端有 filter 拦截,但是没有发现;
    然后 curl -d "" "{url}"正常,curl "{url}"也正常;
    逼着用了 IE 做实验,POST 和 GET 仍然正常。

    最后成了唯一不正常的就是 Edge(v102.0.1245.44),然后用了新版本提供的“网络控制台”工具(类似 postman ),把 BODY 设置为 form-data 、x-www-form-urlencoded 、raw text 就没问题了(即便没有实际内容),BODY 调到 none ,妥妥的 403 ,更神奇的在 header 里手动设置 content-type: none 或者无论什么值乃至空字符串——只要有这个 option ,那就没有问题。

    推论:
    如果要说 403 是服务器返回的,但是为什么 curl 和 IE 不返 403 ,唯独 edge ?这天天升级的浏览器,是又弄什么幺蛾子了? edge 的核心 chromium 加什么新特性了??
    5 条回复    2022-06-23 00:58:17 +08:00
    aaronlam
        1
    aaronlam  
       2022-06-22 23:43:29 +08:00
    用 wireshark 什么的抓一下包呢
    cpstar
        2
    cpstar  
    OP
       2022-06-22 23:56:47 +08:00
    修正问题,继续调试,header 加上 Original ,没有 content-type ,就会产生 403
    cpstar
        3
    cpstar  
    OP
       2022-06-23 00:20:39 +08:00
    没事了,他娘的 CORS 的问题
    hua123s
        4
    hua123s  
       2022-06-23 00:23:39 +08:00 via iPhone   ❤️ 2
    😅空气中弥漫着尴尬的气息
    wunonglin
        5
    wunonglin  
       2022-06-23 00:58:17 +08:00
    其实看控制台就能知道的问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3097 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:50 · PVG 20:50 · LAX 04:50 · JFK 07:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.