One line API call from Javascript

This will pass a method name and a list of arguments to a web-url, passing the classname of the calling javascript. My intent is to allow this to call a same-named class on the server, regardless of the remote language. I've made a working version with PHP, but it was crumb, so I... don't really know where that code is right now.

This also depends on JS Autowire... uhh. Actually, I don't think it really does, but... that's how I wrote it?.

Needless to say, this post needs many improvements. I have a more robust version I'm sorta working on, and I think I'll update this when it's done.

To make it a one-liner, you'd have to do result = await fancyServerObject.fetch(method, ...args);

class FancyServer extends RB.Autowire {

    __attach(){
        this.func = function(){
                alert('with timeout');
            }
    }
    showSpinnerWheelDelayed(ms){
        setTimeout(this.func,ms);
    }
    cancelSpinnerWheel(){
        clearTimeout(this.func);
    }
    async fetch(method,...args){

        const uploadMethod = "POST";
        const url = '/call_api/';
        const params = {
            "method": method,
            "class":this.class ?? this.constructor.name
        };
        for (const index in args){
            params[index] = args[index];
        }
        // console.log(args);
        // console.log(params);
        var formData = new FormData();
        for(var key in params){
            const param = params[key];
            if (param!=null
                &&typeof param == typeof []){
                for(const val of param){
                    formData.append(key,val);
                }
            } else formData.append(key,params[key]);
        }
        const submitData = {method: uploadMethod, mode: "cors"};
        if (uploadMethod=='POST')submitData['body'] = formData;

        const res = await fetch(url, submitData);
        const json = await res.json();
        console.log(json);
        return json.methods[method];
    }
}