Fragensteller
Problem mit Zugriff auf REST-API

Frage
-
Hallo,
hier ist zwar nicht mehr viel los, aber ich versuch es trotzdem einmal.
Beim Versuch Daten an einen REST-API Endpoint zu senden hänge ich total fest.
Lt. Schnittstellenbeschreibung müssen im Header die beiden Optionen "Accept" und "Content-Type" auf "application/xml" gesetzt werden.function fnSendTest() { fetch("/tokenExchange.xml") .then(response => response.text()) .then((data) => { fetch(Url, { method: 'POST', //mode: 'no-cors', headers: new Headers( { 'Accept': 'application/xml', 'Content-Type': 'application/xml' }), body: data }) .then( response => { console.log("Response: " + response.status + " " + response.statusText + ", Type:" + response.type); } ) .catch( err => console.log("Fehler: " + err) ) }) }
Dann erhalte ich jedoch eine Fehler 400: Bad Request mit der Servermeldung:
An HTTP protocol violation was detected and your request was denied.
und es wird ein CORS-Fehler geworfen:
Access to fetch at 'https://api-test.onlineszamla.nav.gov.hu/invoiceService/tokenExchange' from origin 'http://localhost:55613' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Lasse ich den Header weg oder schalte ich no-cors ein (was lt. MDN den Header obsolet macht), dann bekomme ich Fehler 500: Internal Server Error und der Server gibt die Meldung "Cannot consume content type" zurück.
Also egal was ich mache, es funktionert nicht. Hab es auch mit XMLHttpRequest versucht, aber bringt auch nix.
Es ist ja nicht so, dass ich mit Webservices keine Erfahrung habe (hab auf beiden Seiten schon etwas geschrieben), aber ich komm hier einfach nicht weiter.
Ich hab das einmal zum Testen einen Kollegen mit PHP (Curl) versuchen lassen, damit kommt er durch.
Hab irgendwo gelesen, dass das mit PHP irgendwie anders abläuft.
Aber mit PHP hab ich gar nix am Hut. Ich wollte es eben mit JavaScript und oder VB.NET lösen.Hab auch schon einmal direkt an das HelpDesk des Anbieter zwei Anfragen abgesetzt, aber da kommen immer nur die Standardantworten mit Verweis auf die Schnittstellenbeschreibung. Die ist allerdings 145 Seiten lang und mein technisches Englisch ist auch nicht das Beste.
Vielleicht hat ja jemand eine Idee?
Ich würde auch gerne gegen einen Kostenvoranschlag professionelle Hilfe annehmen.
Vielen Dank.
Viele Grüße, Volker
Alle Antworten
-
Hallo Volker,
wenn CORS auf dem Server nicht aktiv ist dann wird das mit JavaScript im Browser nicht gehen. Siehe auch XSS.
Mit VB.NET solltest Du keine Probleme haben
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings -
-
Eine WebApi ist nun mal etwas ganz anders. Bei einer WebApi macht XSS Protection gar kein sinn. Dennoch verweigern viele Webserver den zugriff über JavaScript. Viele Admin und auch Entwickler haben aber keine Ahnung von der Materie. Das Thema mit SPA und WebApis ist aber auch recht neu. In ein paar Jahren wissen es dann alle.
Bei einer Website die auf dem Client des Users läuft macht das mehr sinn.
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings