如果必须使用 POST 请求静态资源 URL ,如.../static/
,有没有可能通过配置 Nginx 在前端同时拿到static/
和发送请求的请求体表单参数?
望大佬解惑!
1
jswh 2023-06-01 08:39:33 +08:00
1. 用 add_header ,把 request body 内容加到 header 里面返回
2. 用 lua 没试过,但理论上可行 |
2
wolfie 2023-06-01 13:39:40 +08:00
请求方,自己弄丢了参数是吗。
|
3
sanmaozhao 2023-06-01 14:05:21 +08:00
建议把原始需求(或问题)说出来,分析完了可能不需要采用你问的这个方法
所谓的“X-Y 问题” |
4
jaredyam OP @jswh 这样做的前提是请求是自己发的,那如果不是自己发的呢?可以在保证返回静态资源的同时 body 数据拿回浏览器吗?之前尝试通过 header 写在 Cookies 里是可行的,但是后面准备禁用 JS 读 Cookies 的权限,还有什么替代方案吗?
|
5
jaredyam OP @wolfie 相当于同一页面有两个前端(页面一套,iframe 一套),iframe 的前端想拿页面前端请求的参数?
|
6
jaredyam OP @sanmaozhao 一个页面里面包含一个 iframe ,页面有一套前端,iframe 有一套前端,页面发送了一个请求静态资源的 P OST 请求,请求体里携带数据,iframe 期望拿到这个请求携带的数据。可以实现吗?有切入的思路吗?🥲
|
8
jaredyam OP @wolfie 但是页面前端请求的是 iframe 的静态资源,也就是在 Nginx 那边是一个配置文件处理的,就是看怎么弄能让页面请求携带的 body 最后让 iframe 前端读到,我也感觉这个问题就不该出现🥲
|
9
sanmaozhao 2023-06-01 17:06:01 +08:00
发 POST 请求的代码,负责把 请求体+响应体 存到 localStorage ,然后 iframe 去读呗
差不多就是这个思路,发请求的负责整理数据,然后写道能和 iframe 共享数据的地方 |
10
jaredyam OP @sanmaozhao 主要问题在于这段代码我这边动不了,但是感觉如果可以的话这个思路应该没问题,感谢!
|
11
thinkershare 2023-06-01 17:24:21 +08:00
@jaredyam iframe 之间又不是不能通讯,直接用 postMessage 通讯不行吗?走后端你请求的资源又不一定是纯文本,如果是纯文本,可以在 nginx 用脚本包一层,但是静态二进制资源你怎么搞?还有响应本身就是 2 部分:body+header(cookie 也在 header 里面), cookie 也可也定向禁用嘛,并需要禁用掉所有 cookie. 你这个方法本质上就有问题。你应该提供更详细的需求场景。
|
12
zanelee 2023-06-02 16:05:37 +08:00
这个东西就算页面和 iframe 是同一个 nginx 的 server ,可是请求是两个吧。要是必须在 nginx 上实现,感觉可以用 lua ,把页面请求的东西到时候先存到共享内存上,再在另一个 iframe 请求上返回的时候从共享内存上取。不知道可不不可行
|