[Seaside] AJAX callback:value: via POST message

Paul DeBruicker pdebruic at gmail.com
Thu Jun 21 17:07:50 UTC 2018


You can change the 

html jQuery ajax


to


html jQuery post 


and it should POST the data.  




Esteban A. Maringolo 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 .squeakfoundation

> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside





--
Sent from: http://forum.world.st/Seaside-General-f86180.html


More information about the seaside mailing list