如果满足某些条件,当用户点击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路线。

最佳答案

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

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

10-06 07:35