HTTP::EngineのHTTP::Engine::RequestがGoogle Chromeだと動かない?? → 解決


表題の通り。


・ROOT/conf/config.yaml

engine:
  interface:
    module: ServerSimple
    args:
      host: 192.168.11.10
      port: 1111


・ROOT/lib/Hoge/Engine.pm

package Hoge::Engine;
use HTTP::Engine;

sub new {
  my $class = shift;
  my %args = @_;

  $args{req}        = {};
  $args{c}          = YAML::LoadFile('../conf/config.yaml');
  
  return bless \%args, $class;
}

sub start {
  my $self = shift;
  my %args = @_;
  my $engine_conf = $self->{c}->{engine};
  
  $engine_conf->{interface}->{request_handler} = sub {
    $self->{req} = shift;
    
    die($self->{req}->{hoge});

    my $headers = HTTP::Headers->new;
    $headers->header('content-type' => 'text/html;charset=utf-8');
    
    return HTTP::Engine::Response->new(
      headers => $headers,
      status  => 200,
      body    => 'Test ok',
    );
  };
  
  HTTP::Engine->new($engine_conf)->run;
}

1;


・ROOT/script/server.pl

#!/usr/bin/perl -w

use strict;
use warnings;
use CGI::Carp qw/fatalsToBrowser/;

use lib qw(../lib);
use Hoge::Engine;

Hoge::Engine->new->start;

1;


こんな感じで定義してサーバー起動して
http://192.168.11.10:1111/?hoge=111
にアクセスした場合は有効なんだけど、
hoge=111をPOSTで渡した場合に取得できない。


なーんでだろ。
調べ中。
http://www.itmedia.co.jp/news/articles/0905/26/news041.html
↑ここら辺関係あんのかな。
でも他のWAFだと普通に動くのになー。


原因は不明ですが、何か治りました。
うぅむ。