有没有可能通过一次 POST 静态资源请求同时拿回静态资源和请求时携带的请求体参数?

2023-06-01 08:26:53 +08:00
 jaredyam

如果必须使用 POST 请求静态资源 URL ,如.../static/,有没有可能通过配置 Nginx 在前端同时拿到static/和发送请求的请求体表单参数?

望大佬解惑!

1738 次点击
所在节点    NGINX
12 条回复
jswh
2023-06-01 08:39:33 +08:00
1. 用 add_header ,把 request body 内容加到 header 里面返回
2. 用 lua
没试过,但理论上可行
wolfie
2023-06-01 13:39:40 +08:00
请求方,自己弄丢了参数是吗。
sanmaozhao
2023-06-01 14:05:21 +08:00
建议把原始需求(或问题)说出来,分析完了可能不需要采用你问的这个方法
所谓的“X-Y 问题”
jaredyam
2023-06-01 16:24:10 +08:00
@jswh 这样做的前提是请求是自己发的,那如果不是自己发的呢?可以在保证返回静态资源的同时 body 数据拿回浏览器吗?之前尝试通过 header 写在 Cookies 里是可行的,但是后面准备禁用 JS 读 Cookies 的权限,还有什么替代方案吗?
jaredyam
2023-06-01 16:26:55 +08:00
@wolfie 相当于同一页面有两个前端(页面一套,iframe 一套),iframe 的前端想拿页面前端请求的参数?
jaredyam
2023-06-01 16:33:00 +08:00
@sanmaozhao 一个页面里面包含一个 iframe ,页面有一套前端,iframe 有一套前端,页面发送了一个请求静态资源的 P OST 请求,请求体里携带数据,iframe 期望拿到这个请求携带的数据。可以实现吗?有切入的思路吗?🥲
wolfie
2023-06-01 16:51:00 +08:00
@jaredyam
xy 问题 +1

谁请求的,谁处理。这个事件触发 就不在 iframe 里。
jaredyam
2023-06-01 16:59:11 +08:00
@wolfie 但是页面前端请求的是 iframe 的静态资源,也就是在 Nginx 那边是一个配置文件处理的,就是看怎么弄能让页面请求携带的 body 最后让 iframe 前端读到,我也感觉这个问题就不该出现🥲
sanmaozhao
2023-06-01 17:06:01 +08:00
发 POST 请求的代码,负责把 请求体+响应体 存到 localStorage ,然后 iframe 去读呗
差不多就是这个思路,发请求的负责整理数据,然后写道能和 iframe 共享数据的地方
jaredyam
2023-06-01 17:21:51 +08:00
@sanmaozhao 主要问题在于这段代码我这边动不了,但是感觉如果可以的话这个思路应该没问题,感谢!
thinkershare
2023-06-01 17:24:21 +08:00
@jaredyam iframe 之间又不是不能通讯,直接用 postMessage 通讯不行吗?走后端你请求的资源又不一定是纯文本,如果是纯文本,可以在 nginx 用脚本包一层,但是静态二进制资源你怎么搞?还有响应本身就是 2 部分:body+header(cookie 也在 header 里面), cookie 也可也定向禁用嘛,并需要禁用掉所有 cookie. 你这个方法本质上就有问题。你应该提供更详细的需求场景。
zanelee
2023-06-02 16:05:37 +08:00
这个东西就算页面和 iframe 是同一个 nginx 的 server ,可是请求是两个吧。要是必须在 nginx 上实现,感觉可以用 lua ,把页面请求的东西到时候先存到共享内存上,再在另一个 iframe 请求上返回的时候从共享内存上取。不知道可不不可行

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

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

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

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

© 2021 V2EX