可以在浏览器中运行的JavaScript访问POST到其页面的值吗?

时间:2013-01-24 18:20:21

标签: javascript browser http-post http-post-vars

  

可能重复:
  How to read the post request parameters using javascript

想象一下,两个网页在不同的网络服务器上运行。

  • Page-A:有一个< form method =“POST”action =“http:// server-b / page-b”>
  • Page-B:处理来自Page-A
  • 的表单提交

在Page-B中运行的JavaScript是否可以访问从Page-A发布的输入字段值?


一个重要的限制是,提供Page-B的服务器无法将POSTed值替换为Page-B。所以JavaScript只能通过DOM或其​​他浏览器API找到。

这种约束的原因是生产中的Page-B要求字段名称与某种形式匹配。但是,在测试期间,Page-B必须由不同的平台提供, 支持生产服务器所需的字段名称格式。由于许可和其他限制,我们无法使用与生产相同的平台。我们可能可能启动另一台服务器以服务于Page-B测试页面,但这是很多工作,我们希望避免它。

请不要给出特定于平台的答案(PHP,Ruby,等等)。涉及的系统(基本上)是专有的。

2 个答案:

答案 0 :(得分:2)

简短的回答是否。

POSTed参数是服务器处理的HTTP请求的一部分,直接在浏览器(在发布的页面上)和服务器之间进行通信。

一旦呈现服务器响应,那些HTTP请求标头就会丢失。

您的问题有几个解决方案:

  1. 让Page A记住POST的值,以cookie的形式或不是。
  2. 让服务器将POST的值渲染为JavaScript变量,或隐藏的FORM字段。
  3. 使用GET而不是POST,因为这些值可以直接从URL中读取。
  4. 希望这有帮助!

答案 1 :(得分:1)

简短回答是否。浏览器只知道页面B的内容,而不是访问它的请求。

如果无法使Page B包含POST给它的值,那么该页面上JavaScript获取这些值的唯一方法就是完全是其他路径,例如。通过让服务器记录它们然后让页面B通过AJAX请求或同样复杂和脆弱的东西询问服务器。保持所有这些同步可能很难。