【发布时间】:2016-07-01 12:19:23
【问题描述】:
在一个相当大的 PHP/Drupal 网站上(这不是 Drupal 问题),我们的任务是允许一个深层链接进入一个页面,其中大量数据必须由调用站点提供。
跨域不会成为问题,因为我们可以控制两端并且可以根据需要进行调整。
所以我们想要的是在原始服务器 [A] 上单击提交表单会将 POST 数据发送到接收服务器 [B]。这很简单。
之所以如此复杂,是因为还必须发送大量非用户数据(不管它为何或来自何处)。所以 (i) 有额外的数据要添加到 POST 负载中,并且 (ii) 原始服务器 [A] 是 node.js,他们想要发送 JSON 编码的数据而不是使用 form-urlencoded。
他们(JS 人)想一口气完成。用户单击 [A] 上的表单,他们构建有效负载,POST 到深度链接 URL,浏览器显示来自 [B] 的新页面。
我可以在 PHP 端处理它,但我无法从概念上理解它。我觉得不可能。
据我了解,表单操作 URL 是关键。正是这个重定向浏览器,在 URL 或正文中发送表单 urlencoded 数据。 (不能像我们所知的那样使用 JSON。)
但在我看来,如果他们做任何事情来中断 [A] 上的表单处理,浏览器将不会被重定向到 [B],它只会变成 AJAX 调用。
所以问题是:是否可以修改表单的有效负载并仍然获得相同的行为,将浏览器重定向到新页面?
(如果这是不可能的,解决方案相对简单,一个 AJAX 调用来设置所有内容,返回一个 URL,将浏览器重定向到提供的 URL。)
【问题讨论】:
-
你能把 JSON 数据放在表单的隐藏输入中吗?
-
我已将其作为测试的一部分进行,它运行良好,但这不是计划中的数据合同的一部分。我想探索所有选项,因为我什至不知道是否可以完成。因此,最后的实际问题。我有替代解决方案,但可以按照我们想要的方式完成吗?
-
你认为你会在哪里修改有效载荷 from?在我看来,您故意排除了简单的解决方案。
-
我不是在寻求解决方案,我是在问是否有人知道我的问题的答案。
-
@nnnnnn — 如果这样做,您最终会在 application/x-www-form-urlencoded 有效负载中嵌入 JSON,而不是 JSON 有效负载。
标签: javascript php json ajax forms