【问题标题】:Is there a way to post to a route automatically if certain conditions are met in per cgi如果每个 cgi 满足某些条件,有没有办法自动发布到路线
【发布时间】:2020-02-17 12:44:12
【问题描述】:

如果满足某些条件,当用户点击 cgi 页面时,我想通过发布请求将用户转发到路由。我尝试了以下代码,但无法访问站点。浏览我的日志,我什么也没得到。

我正在通过 perl 从 cgi 脚本中获取数据。如果条件匹配,我想提交到非 cgi 路由。

print qq@<form name='success' action='mysite.com/canyd/' method='post'>@,
qq@<input type='hidden' name='linkB' value='Add Assets' />@,
qq@</form>@,
qq@<script type='text/javascript'>@,
qq@    document.success.submit()@,
qq@</script>@;

当满足条件并且 cgi 代码的这部分触发时,我只是无法访问站点。我不需要用户选择提交。有没有办法使用 post 模块。

我所期望的是代码会满足条件,然后通过 javascript 提交将我带到 canyd 路线。

【问题讨论】:

  • @Grinnz,当且仅当两个请求的请求正文相同时,才能使用 307。 (尚不清楚 OP 是否属于这种情况。)
  • 操作 URL 也是错误的,因为它是路径相关的。应该是//example.com/canyd/ 或https://example.com/canyd/。

标签: javascript perl cgi


【解决方案1】:

在 HTTP client library 的帮助下,代表 CGI 程序中的用户发送 POST 请求。

use HTTP::Tiny qw();
my $response = HTTP::Tiny->new->post_form(
    'http://‌mysite.com/canyd/',
    { linkB => 'Add Assets' }
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多