REST API cross origin request

Deutschsprachiges Forum für Diskussionen und Fragen zu MantisBT

Moderators: Contributor, Developer

REST API cross origin request

Postby julian1412 » Jun 22, 2017 1:22 pm

Note: I posted an English version of this problem on stackoverflow, too: https://stackoverflow.com/questions/44701216/how-to-make-http-request-to-mantisbts-rest-api-using-angular-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
julian1412
 
Posts: 1
Joined: Jun 22, 2017 1:09 pm

Return to Deutsch

Who is online

Users browsing this forum: Yahoo [Bot] and 6 guests