REST API cross origin request

Deutschsprachiges Forum für Diskussionen und Fragen zu MantisBT

Moderators: Developer, Contributor

Post Reply
julian1412
Posts: 1
Joined: 22 Jun 2017, 18:09

REST API cross origin request

Post by julian1412 »

Note: I posted an English version of this problem on stackoverflow, too: https://stackoverflow.com/questions/447 ... gular-http

Hallo,

ich arbeite derzeit an einer Webapplikation, welche die REST API von mantisBT nutzen soll. Auch wenn diese noch experimentell ist, habe ich gehofft, dass diese für meine Zwecke funktioniert.

Folgendes Szenario: Die Webapplikation läuft auf einer anderen Domain als meine mantisBT Installation. Ich habe bereits folgendes konfiguiert:

1. config_inc.php

Code: Select all

$g_webservice_rest_enabled = ON;

$t_protocol = 'https';
$g_custom_headers = array(
  'Access-Control-Allow-Origin: *',
  'Access-Control-Allow-Headers: authorization,content-type',
  'Access-Control-Allow-Methods: POST,GET,OPTIONS'
);
2. /api/rest/index.php

Code: Select all

# Bypass default Mantis headers
$g_bypass_headers = false;
(ansonsten übernimmt er die Header aus der config_inc.php nicht

3. API Token generiert

Nun erstelle ich in meiner Webapplikation eine HTTP Anfrage wie folgt (Angular 2 + Typescript):

Code: Select all

sendReport(): Observable<Response> {
    const api_token = 'XXXXXXX';

    const url = 'https://XXXXXXX/mantisbt/api/rest/issues';

    const headers = new Headers();
    headers.append('content-type', 'application/json');
    headers.append('authorization', api_token);

    const params = new URLSearchParams();
    params.set('id', '1');
    const options = new RequestOptions({ headers: headers, search: params });

    return this.http.get(url, options);
  }
Das funktioniert leider nur, wenn die Webapplikation sich auf derselben Domain befindet wie mantisBT. Für meinen Zweck muss das aber von verschiedenen Domains aus funktionieren.

Ich bekomme folgende Fehlermeldung:

Code: Select all

XMLHttpRequest cannot load https://poemp.net/mantisbt/api/rest/issues?id=1. Response for preflight has invalid HTTP status code 401
Ich habe schon im Internet gesucht und herausgefunden, dass es ein serverseitiges Problem sein muss. Nach sehr vielen Stunden der Suche, wende ich mich hoffnungsvoll an euch. Kann mir bitte jemand helfen?

Viele Grüße

Julian
Post Reply