perl-embperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Donavon <d...@mycopanet.com>
Subject Re: EMBPERL: accepting json
Date Thu, 08 Sep 2016 19:08:08 GMT
Yup. that's it.

If I use Embperl to create JSON data no problem.

I just do:

[-

|  use| |JSON;||  $hash{'key'} = 'value||';||||  $json| |= 
encode_json(\||%hash||);|

|  $http_headers_out||{||'Content-Type'||}         = 
||"application/json; charset=utf-8"||; |||
||  $escmode| |= 0;|||  print| |OUT ||$json||;|

|-] If I use Embperl to receive JSON data. That's where the issue 
arises. <script> |

var formData = {"data1":a,"data2":b,"data3":c};

$.ajax(

{dataType:"json",

contentType:"application/json; charset=UTF-8",

url:'/folder1/doSomething1.epl',

data:formData, success:function(response){ CurrentArray=response; } }); 
</script>



On 9/8/2016 10:21 AM, Neil Gunton wrote:
> Donavon wrote:
>> I agree with all of the responses that Embed perl was made to mainly use
>> CGI.pm and multipart/form-data and really shouldn't be used outside 
>> of that.
>>
>> BUT As long as there is possibility that it might be able to receive
>> application/json data I have to look for a way to do it. It's part of my
>> job to look for solutions that work within current limitations.
>>
>> If every response to this email is "It's not possible" that is something
>> I can take to a meeting.  If the responses are "You shouldn't or it's
>> difficult" then I have to keep searching for a solution that is
>> understandable and workable.
>>
>> I'm willing to pay a small consulting fee or a donation to a charity,
>> for assistance in figuring this out.
>>
>> So what are the suggestions for handling a call like this on a script by
>> script basis.  I might be possible to limit the scripts accepting these
>> calls to specific directories.
>>
>> |varformData
>> ={"data1":a,"data2":b,"data3":c};$.ajax({dataType:"json",contentType
>> :"application/json; charset=UTF-8",url:'/folder1/doSomething1.epl',data
>> :formData,success:function(response){CurrentArray=response;}}); Thank
>> You, ~Donavon |
>>
>>
>>
>>
>>
>>
>> On 9/4/2016 2:30 AM, Michael Smith wrote:
>>> I wouldn't use embperl to accept json. I see embperl as being
>>> designed for HTML output, so I don't really see how it helps when
>>> dealing with json.
>>>
>>> On Fri, Sep 2, 2016 at 11:43 PM, Donavon <donl@mycopanet.com
>>> <mailto:donl@mycopanet.com>> wrote:
>>>
>>>     Good to know that there are still some Embperl users out there.
>>>
>>>     We have a large SAAS system mainly in Embperl, so our usage of
>>>     Embperl is not going away anytime soon.
>>>
>>>
>>>     My current question to the Embperl community is:
>>>
>>>     *How to accept **application/json?*
>>>
>>>     **I know that "Embperl uses CGI.pm internally to process forms
>>>     encoded with multipart/form-data" and that get processed into 
>>> %fdat.
>>>
>>>     Is there a way to disable this behavior dynamically per page to
>>>     accept application/json data.
>>>
>>>     Thanks,
>>>     ~Donavon
>
> Perhaps I am misunderstanding the scenario you are dealing with, but I 
> use json in my regular Embperl-based website all the time to 
> communicate with the client side Javascript. On the client side I just 
> use JSON.parse and JSON.stringify to decode/encode objects for sending 
> via regular POST calls. And on the server side, I get that data 
> through the usual %fdat and decode it using JSON::Parse. This is all 
> done using the regular, vanilla Embperl GET/POST. So unless you are 
> dealing with some other third party application that you have no 
> control over (i.e. something is generating calls that are specifically 
> application/json), I don't see why using JSON with Embperl is an 
> issue. After all, JSON is really just a way of encoding objects as 
> text, like XML.
>
> I also generate application/xml responses using Embperl, just set 
> $http_headers_out{'Content-type'} to whatever you are using and then 
> make sure the actual output matches that format. What I do is have a 
> base.epl that figures out what the current request is about (usually 
> via a page_type() sub that is redefined in subdirectories using 
> Embperl::Object), and then base.epl calls e.g. base_html.epl if it's a 
> regular web page, or base_xml.epl if it's going to be an xml response, 
> or base_text.epl if it's a simple text response etc.
>
> Sorry, I don't know if I'm completely missing the point, but it's very 
> easy to work with json in Embperl. Unless, like I said, you have some 
> other application that is actually generating application/json calls, 
> and you have no control over that, and you're trying to figure out how 
> to get Embperl to even handle those requests... if that's the case, 
> then ok, I'm not sure how that would work with %fdat etc.
>
> Neil
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
> For additional commands, e-mail: embperl-help@perl.apache.org
>


Mime
View raw message