___ qstnhdr ___ JQuery POST-Anforderung in TypeScript
___ antwort43994417 ___
Das ist einfach normal CORS macht seine Arbeit.
Stellen Sie sicher, dass Sie die html-Site, die Ihr Skript enthält, von derselben URL / demselben Port aus beliefern, auf dem sich Ihre API befindet.
z.B.:
Ihr Html / Script sollte sich unter
befinden
Ссылка
dann ein AJAX-Ruf nach
Ссылка
sollte kein Problem sein, da das Skript, das die Anfrage ausgibt, von derselben URL / demselben Port stammt und es keine Notwendigkeit gibt, eine Überprüfung durchzuführen.
Auf diese Weise sollten Sie die Notwendigkeit eines Pre-Flight-Checks des Browsers umgehen, der bestimmt, ob der Anfrage Zugriff gemäß CORS gewährt wird.
Alternativ können Sie CORS in Ihrer API aktivieren , stellen Sie jedoch sicher, dass Sie die API, die von jedem möglichen (Web-) Client da draußen aufgerufen werden kann, um Missbrauch zu verhindern.
Eine weitere Möglichkeit, um mehr Kontrolle über Ihre URLs zu erlangen, besteht darin, zu IIS zu wechseln sogar auf Ihrer DEV-Maschine, aber es könnte andere / bessere Möglichkeiten geben, dies zu erreichen (bin ich nicht so tief in das Hosting von .NET Core ATM, um eine bessere Probe zu bieten, aber andere könnten)
Ich versuche, mit einer API zu sprechen, die TypeScript und JQuery (von Definely Typed) verwendet.
%Vor%
Die Anfrage zu stellen und zu sehen, was Fiddler erfasst, ist ziemlich seltsam.
Falsches HTTP-Verb und Header sind in Access-Control-Request-Header nicht als Standardheader enthalten.
JQuery 3.2.0 und die neuesten index.d.ts aus DefinedTyped .
Ich könnte eine HTTP-Anfrage in Fiddler erstellen:
Die Anfrage, die ich erstellen möchte:
Aktualisieren
Ich habe versucht, den dataType zu jonglieren, um zu umgehen Preflight-Checks :
%Vor%
Update 2
Die API wird in IIS Express von Visual Studio 2017 (unter Verwendung von .NET Core) gehostet, und die Website wird über den Lite-Server gehostet . Dieser Code funktioniert einwandfrei, wenn die benutzerdefinierten Header entfernt werden.
___ tag123typescript ___ TypeScript ist eine typisierte Obermenge von JavaScript, die von Microsoft erstellt wurde. Sie fügt optionale Typen, Klassen, async / await und viele andere Features hinzu und kompiliert JavaScript. Dieses Tag steht für spezifische Fragen zu TypeScript. Es wird nicht für allgemeine JavaScript-Fragen verwendet.
___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser JavaScript-Bibliothek, die durch die Minimierung der Abweichungen in allen Browsern Document Object Model (DOM) Traversal, Ereignisverarbeitung, Animationen und AJAX-Interaktionen ermöglicht. Eine mit jQuery gekennzeichnete Frage sollte mit jQuery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein.
___