【问题标题】:Read POST data from Oracle Forms App从 Oracle Forms App 读取 POST 数据
【发布时间】:2014-04-18 21:00:26
【问题描述】:

我试图在我的 Oracle Forms 应用程序中接收一些 http POST 数据。如何从我的表单应用程序中读取这个发送的 POST 参数?

注意:要读取 http-GET 数据,我使用 this answer 等其他参数,但这是通过 POST http 方法发送数据的基础

【问题讨论】:

  • 在表单中,参数通过 HTTP GET 或 POST 发送没有区别。您的 HTML 表单是否使用正确的 enctype 发布参数?试试 application/x-www-form-urlencoded。
  • 我通过 Javascript 创建表单 DOM 节点,然后执行 form.submit 以通过 POST 方法发送参数。我还没有测试的是发送一个“otherparams”(按照我的问题说明中的链接)参数来检查我的表单应用程序是否收到它,就好像这是通过 url GET 参数发送的一样。

标签: forms oracle plsql oracle11g oracleforms


【解决方案1】:

正如@Christian13467 所提到的,对于Oracle Forms 来说,HTTP 变量的发送方式非常无关紧要,即使用POST 或GET 方法。

我的解决方案是构建一个字符串,其中包含以 otherparams 格式连接的所有变量,然后通过 POST 方法发送。由于我的第一个表单包含在另一个 Oracle Forms 应用程序中,我编辑了一个名为 basejpi.htm 的模板文件,以添加带有以下代码的标头 javascript 部分:

function sendPostVars(path,params) {
  var method = "post"; 

  var form = document.createElement("form");
  form.setAttribute("method", "post");
  form.setAttribute("action", path);

  var hiddenField = document.createElement("input");
  hiddenField.setAttribute("type", "hidden");
  hiddenField.setAttribute("name", "otherparams");
  hiddenField.setAttribute("value", params);

  form.appendChild(hiddenField);

  document.body.appendChild(form);
  form.submit();
}

然后从我的第一个表单应用程序中,我通过 11g javascript 集成函数调用了这个方法,如下所示:

web.javascript_eval_expr(sendPostVars('http://host2:port/forms/frmservlet','name1=param1+name2=param2'))

最后,我将参数读入了我的第二个 Oracle Forms 应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-24
    • 2015-09-30
    • 2022-06-16
    • 2012-08-21
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多