【问题标题】:Redirect to URL with raw post data使用原始帖子数据重定向到 URL
【发布时间】:2019-03-23 19:59:05
【问题描述】:

我的问题与这个问题相同:Sending a RAW data POST-request with an HTML Form?,但有一个例外:在我的情况下,给出的答案都不起作用。

我需要与第 3 方 API 通信,遗憾的是我无法控制。这主要发生在服务器端,所以我在我的 PHP 脚本中通过 CURL 进行通信。

但是,有一个地方我撞到了墙上。我的服务器从 API 接收到一个重定向 URL,我必须将 user 重定向到该 URL。例如,他们必须在其 Web 浏览器中访问该第 3 部分页面。

看起来很简单,只需使用 PHP 向用户发送重定向标头,对吗?事实证明我不能这样做,因为第 3 方页面需要请求标头中的 POST 数据。

我的下一个想法是创建一个带有隐藏输入的 HTML 表单并将其提交到第 3 方页面。这也不起作用,因为我必须发送的 POST 数据实际上只是一个原始字符串,而不是表单字段。示例:3d2c993f-1a99-4078-bb56-c10498c65092。本质上,我需要去掉 POST 请求中的 'name=' 部分。

我能找到在客户端发送原始帖子数据的唯一方法是通过 Javascript XMLHttpRequest。但是,这也不是我所需要的,因为用户实际上必须在浏览器中的第 3 方 url 加载页面并与之交互。

所以,我需要一些方法将我的用户重定向到第 3 方 URL,包括 POST 标头中的原始字符串。任何人都知道如何做到这一点?我真的不在乎这是通过 PHP、HTML 还是 Javascript 完成的。

【问题讨论】:

    标签: javascript php html http forms http-post


    【解决方案1】:

    这是我很久没有做过的事情了,但是 PHP 的原生 stream_context_create 函数是要走的路。

    http://php.net/manual/en/function.stream-context-create.php

    这与重定向标题相结合将使您顺利上路

    【讨论】:

    • 如果我理解您的建议正确,您建议我自己获取第 3 方页面并将其发送给用户,而不是尝试将用户重定向到第 3 部分页面?我想值得一试,我会看看这是否可行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2021-04-19
    • 2021-10-26
    • 2019-12-11
    相关资源
    最近更新 更多