Фрагмент из теста:
my $request = HTTP::Request->new( POST => 'http://192.168.5.130:3000/user' );
$request->content_type('application/json');
$request->content( $query_string );
my $result = $ua->request( $request );
Фрагмент из вызова ajax:
$.ajax({
url: 'http://192.168.5.130:3000/user',
type: 'POST',
cache: false,
async: true,
dataType: 'json',
timeout: 5000,
data: $("#create-user-form").serializeObject(),
error: function(jqXHR, textStatus, errorThrown){
console.log("jQuery ajax error....");
},
);
В контроллере есть обработчик маршрута (с использованием Catalyst::Controller::Rest
)
sub user_POST {
my ($self, $c, $args) = @_;
warn Dumper( $c );
...
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я выполняю вызов из теста, содержимое устанавливается в объекте Catalyst в хеш-ключе с ключом «data», к которому можно получить доступ, вызывая $c->req->data
.
Однако, когда ajax-вызов выполняется с веб-страницы, данные хранятся в объекте Catalyst в хеше с ключом, называемым « parameters », доступ к которому осуществляется с помощью вызова $c->req->parameters
.
Кто-нибудь знает, почему это происходит и что нужно делать, чтобы обойти это?