• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Issue Plesk API don't support CORS preflight OPTIONS Request

lippoliv

Basic Pleskian
Hey there,
I'am going to write an Angular2-Module for Plesk API for my own small Needs.
I noticed that Plesk don't Support the CORS preflight OPTIONS request: https://www.html5rocks.com/en/tutorials/cors/

Is there any Option to allow that request so I can continue my work?

(For this development I have rent an own vServer with en web host licence. Would be bad to stop now for unknown time.)

This is my current Code:
Code:
private getHeaders(): RequestOptions {
    let headers: Headers = new Headers();

    headers.append('Content-Type', 'text/xml');
    headers.append('HTTP_PRETTY_PRINT', 'TRUE');
    headers.append('HTTP_AUTH_LOGIN', this.user);
    headers.append('HTTP_AUTH_PASSWD', this.password);
    headers.append('Access-Control-Allow-Origin', '*');

    return new RequestOptions({
        headers: headers
    });
}

private request(request: string, version: string): Observable<Response> {
    let template: string = '<?xml version="1.0" encoding="UTF-8"?><packet version="%s">%s</packet>';
    request              = sprintf(template, version, request);

    let url = sprintf('https://%s.%s', this.prefix, this.postfix);
    return this.http.post(url, request, this.getHeaders());
}

public createClient(company: string, lastname: string, firstname: string, user: string, password: string, callback: Function) {
    let template: string = "<customer><add><gen_info><cname>%s</cname><pname>%s %s</pname><login>%s</login><passwd>%s</passwd><status>0</status><country>DE</country></gen_info></add></customer>";
    let request: string  = sprintf(template, company, lastname, firstname, user, password);

    this.request(request, '1.6.5.0').map((response: Response) => response.text()).subscribe(function (data: string) {
        console.log(data);

        callback();
    });
}

And then outside of that module:

Code:
    generateHostingPackage() {
        let plesk: Plesk = this.plesk;

        plesk.createClient(this.company, this.lastname, this.firstname, this.user, this.pw, function () {
            console.log('ready');
        });
    }
 
Back
Top