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

2022-06-22 23:25:49 +08:00
 cpstar
症状:
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 加什么新特性了??
1487 次点击
所在节点    问与答
5 条回复
aaronlam
2022-06-22 23:43:29 +08:00
用 wireshark 什么的抓一下包呢
cpstar
2022-06-22 23:56:47 +08:00
修正问题,继续调试,header 加上 Original ,没有 content-type ,就会产生 403
cpstar
2022-06-23 00:20:39 +08:00
没事了,他娘的 CORS 的问题
hua123s
2022-06-23 00:23:39 +08:00
😅空气中弥漫着尴尬的气息
wunonglin
2022-06-23 00:58:17 +08:00
其实看控制台就能知道的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX