V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
cpstar
V2EX  ›  问与答

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

  •  
  •   cpstar · Jun 22, 2022 · 2101 views
    This topic created in 1406 days ago, the information mentioned may be changed or developed.
    症状:
    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 replies    2022-06-23 00:58:17 +08:00
    aaronlam
        1
    aaronlam  
       Jun 22, 2022
    用 wireshark 什么的抓一下包呢
    cpstar
        2
    cpstar  
    OP
       Jun 22, 2022
    修正问题,继续调试,header 加上 Original ,没有 content-type ,就会产生 403
    cpstar
        3
    cpstar  
    OP
       Jun 23, 2022
    没事了,他娘的 CORS 的问题
    hua123s
        4
    hua123s  
       Jun 23, 2022 via iPhone   ❤️ 2
    😅空气中弥漫着尴尬的气息
    shakaraka
        5
    shakaraka  
    PRO
       Jun 23, 2022
    其实看控制台就能知道的问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5815 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 03:20 · PVG 11:20 · LAX 20:20 · JFK 23:20
    ♥ Do have faith in what you're doing.