We also realise that our web skills are out of date and we are trying to
bing ourselves up to date, but that takes time :(

Rob

On Wed, Apr 29, 2015 at 1:01 PM, Rob Willett <
[email protected]> wrote:

> John,
>
> Yes we looked at that and we tried it and couldn't get it to work either.
>
> We also tried the SecureCors version.
>
> We're struggling to understand why this is so difficult. Many, many people
> use this type of framework on the internet but as far as we can see very
> few people have his issue. There are very few code samples around either
> for us to try with which makes me think that somethings not quite right.
>
> Thanks
>
> Rob.
>
> On Wed, Apr 29, 2015 at 12:47 PM, John <[email protected]> wrote:
>
>>  I have not ready your entire post so don't know if this will apply in
>> your case: Mojolicious::Plugin::CORS
>>
>> John
>>
>>
>> On 04/29/2015 06:44 AM, Rob Willett wrote:
>>
>> Hi,
>>
>>  First time poster.
>>
>>  We've written an app using jquery, Cordova and were trying too work out
>> a simple REST server framework to use. Since we had a lot of code already
>> written in JavaScript and using SQLite we thought we'd try express.js and
>> the sqlite modules there. Whilst simple interactions seem to work, the
>> asynchronous nature and the complete lack of sensible support for SQL
>> transactions, we abandoned that and went back to our other option
>> Mojolicious.
>>
>>  I've been reading a lot about Mojlicious and have struggled to find the
>> answer to what I think should be a simple problem. We simply want to allow
>> anybody to access the Mojlicious web app. Our app will be on our own
>> intranet and we don't want anything in the way.
>>
>>  We thought this would be simple but we seem to be struggling with this
>> and after reading vast quantities of blogs, cpan sections we still cannot
>> get a simple browser running Firefox to make a simple POST request to a
>> Mojlicious server. We are embarrassed but after two days enough is enough,
>> we're asking for help.
>>
>>  This is the smallest server code we could write.
>>
>>   #!/usr/bin/perl -w
>>
>>  use Mojolicious::Lite;
>>
>>  options '*' => sub {
>>   my $self = shift;
>>
>>    $self->res->headers->header('Access-Control-Allow-Origin' => '*');
>>   $self->res->headers->header('Access-Control-Allow-Credentials' =>
>> 'true');
>>   $self->res->headers->header('Access-Control-Allow-Methods' => 'GET,
>> OPTIONS, POST, DELETE, PUT');
>>   $self->res->headers->header('Access-Control-Allow-Headers' =>
>> 'Content-Type');
>>   $self->res->headers->header('Access-Control-Max-Age' => '1728000');
>>
>>    $self->respond_to(any => { data => '', status => 200 });
>> };
>>
>>  get '/data' => sub {
>>     my $self = shift;
>>
>>      print "GET found\n";
>>     $self->render(text => 'ok');
>> };
>>
>>  post '/data' => sub {
>>     my $self = shift;
>>
>>      print "\nPOST found\n";
>>     $self->render(text => 'POST ok');
>> };
>>
>>  app->secrets(['My very secret passphrase.']);
>>
>>  app->start;
>>
>>  The code to call it from our app is
>>
>>    $http({
>>                     url: "http://localhost:3000/data";
>> <http://localhost:3000/data> ,
>>                     method: 'POST' ,
>>                     headers: { 'Content-Type': 'application/json' } ,
>>                     data: { payload : payload }
>>                 }).then(function(response) {
>>                     // Success
>>                     ConsoleLog("$http POST success");
>>         } ,
>>                 function(response) {
>>                     ConsoleLog("$http POST failure");
>>  });
>>
>> We know this angular code works calling express.js running on node.js we
>> we had it running, we extracted the JSON data from it and updated databases.
>>
>>  If we access this from curl, it works fine.
>>
>>   curl --data "id=123" http://localhost:3000/data
>>
>>  We get 'POST OK' returned.
>>
>>  If we access this from a Firefox browser, which we use as a development
>> testing mule, we get
>>
>>   Cross-Origin Request Blocked: The Same Origin Policy disallows reading
>> the remote resource at http://localhost:3000/data. This can be fixed by
>> moving the resource to the same domain or enabling CORS.
>>
>> We can see the OPTIONS method being called from the Network debugger
>> under Firefox and it returns 200 which is OK. This is followed by a POST
>> method and that looks OK as it returns 200. If we examine the headers it
>> all 'looks ok' but clearly isn't. We can see that the debugging from the
>> Mojlicious server prints out "Post found" which is what we would expect.
>>
>>
>> <https://lh3.googleusercontent.com/-M5gnpxpeQzI/VUDDNTSXHnI/AAAAAAAAAHE/hgu5HgdWP9Q/s1600/Screen%2BShot%2B2015-04-29%2Bat%2B12.16.00.png>
>>
>> We're sure this is something simple, but after a very long night and far
>> too much coffee we've no idea what the problem is.
>>
>> Any suggestions welcomed (including pack it all in and take up fishing).
>>
>> Thanks
>>
>> Rob
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Mojolicious" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/mojolicious.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Mojolicious" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/mojolicious.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

Reply via email to