[Seaside] AJAX callback:value: via POST message

Esteban A. Maringolo emaringolo at gmail.com
Thu Jun 21 17:03:28 UTC 2018


I've tried several, way elaborated ways but didn't try the most
elemental. :)

Thanks, it works as expected.


On 21/06/2018 12:59, Gabriel Cotelli wrote:
> You can do
> 
> ajax type: 'POST'
> 
> and it will use POST insted of GET.
> 
> On Thu, Jun 21, 2018 at 10:07 AM, Esteban A. Maringolo
> <emaringolo at gmail.com <mailto:emaringolo at gmail.com>> wrote:
> 
>     Hi,
> 
>     I'm currently doing a an AJAX call with #callback:value: where the value
>     is a stringified JSON I built at client side and which on completion
>     returns a script file. But the value payload is passed encoded in the
>     URI, and this has a size limit.
> 
>     Is there a way to do a callback:value: using POST instead of GET?
> 
>     The call is something like this:
> 
>     ( html jQuery id: self tableId )
>       on: 'paste'
>       selector: nil
>       data: ( ( html jQuery ajax )
>         callback: [ :json | self pasteMatrix: ( WAJsonParser parse: json ) ]
>           value: ( JSStream on: 'JSON.stringify(arguments[0])' );
>         onComplete: ( html jQuery ajax
>           script: [ :s | self scriptValidatedReloadOn: s ] ) ) asFunction.
>       call: (JSStream on: 'pasteHandler' )
> 
> 
>     And I'd like to have a POST based function that sends the JSON string in
>     it's `data` payload instead.
> 
>     Regards,
> 
> 
>     Appendix A:
> 
>     `pasteHandler` is a custom function that detects if the contents being
>     pasted into a text input are not a single value but instead are values
>     copied from an Excel file, in tab separated format, and if so overrides
>     the event propagation, creates a matrix (array of arrays), and calls the
>     function passed to the `data:` parameter in the event handler.
> 
>     Because the inputs are presented as separate <input> tags within a
>     table, that's the only way I found to preserve the convenience of having
>     separate inputs, but with the behavior of a single "grid" for pasting
>     (and copying) data.
> 
> 
>     function pasteHandler(event){
>       var clipboardData, pastedData;
>       var e = event.originalEvent;
>       var matrix;
> 
>       clipboardData = e.clipboardData || window.clipboardData;
>       if (!clipboardData) return false;
> 
>       pastedData = clipboardData.getData("Text");
>       matrix = tabMatrix(pastedData);
>       if (isMatrix(matrix)) {
>         // Stop data actually being pasted
>         var point = pastePoint(e.target);
>         var matrixHandler = event.data;
>         if (matrixHandler) {
>           e.stopPropagation();
>           e.preventDefault();
>           matrixHandler({"matrix": matrix, "point": point});
>         }
>       }
>     }
> 
> 
>     -- 
>     Esteban A. Maringolo
>     _______________________________________________
>     seaside mailing list
>     seaside at lists.squeakfoundation.org
>     <mailto:seaside at lists.squeakfoundation.org>
>     http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>     <http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside>
> 
> 
> 
> 
> -- 
> 
> 
> ------------------------------------------------------------------------
> 	
> Gabriel O. Cotelli
> Desarrollo y Tecnología
> Mercap
> Tel: +54 (011) *5352.2372 al 74*
> http://www.mercapsoftware.com
> 
> This message is confidential. It may also contain information that is
> privileged or otherwise legally exempt from disclosure. If you have
> received it by mistake please let us know by e-mail immediately and
> delete it from your system; also you shouldn't copy the message nor
> disclose its contents to anyone. Thanks.
> ------------------------------------------------------------------------
> 
> 
> 
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> 

-- 
Esteban A. Maringolo


More information about the seaside mailing list