[Seaside] AJAX callback:value: via POST message

Esteban A. Maringolo emaringolo at gmail.com
Thu Jun 21 17:09:41 UTC 2018


This was the first thing I tried, but the "onComplete:" handler was not
allowed in the options, I then tried some other stuff but caused a full
page response).

Regards!

On 21/06/2018 14:07, Paul DeBruicker wrote:
> 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
> _______________________________________________
> 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