[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