CORS - domainübergreifender AJAX ohne JSONP, indem Origin auf dem Server zugelassen wird

8

Ich habe zwei separate Apps auf demselben Server, wobei der EmberJS versucht, domainübergreifende Aufrufe an meine Backend-API vorzunehmen.

Ich habe meine Backend-API eingerichtet, um domainübergreifende Anfragen von diesem bestimmten Ursprung zuzulassen. Gibt es jedoch einen Weg, um JSONP mit solch einer Einrichtung zu vermeiden? $.ajax blockiert domänenübergreifende Anforderungen, bevor sie überhaupt gesendet werden. Wenn nicht, was ist der Sinn von CORS, welche Server-Seite habe ich implementiert, um Anfragen von meiner JS-Frontend-Quelle zu akzeptieren?

BEARBEITEN

AJAX-Anfrage:

%Vor%     
darksky 26.06.2013, 11:09
quelle

3 Antworten

9

Wenn Sie CORS aktivieren, müssen Sie JSONP nicht verwenden.

%Vor%

Wenn dieser Header in der Antwort festgelegt ist, kann der normale XmlHttpRequest auf die Antwort zugreifen, als ob er der gleichen Domäne gleicht. Überprüfen Sie, ob diese Kopfzeile korrekt eingestellt ist.

Ich hoffe, dass dieser Link Ihnen helfen wird, wenn Sie jquery Eine CORS POST-Anfrage funktioniert mit einfachem JavaScript, aber warum nicht mit jQuery?

Aktualisierung: Beispiel

%Vor%

Versuchen Sie dies in einer beliebigen Domain, Sie erhalten eine Antwort.

Update-Lösung:

Request URL ohne "http: //" verursachte das Problem, bevor "http: //" das Problem löste

    
Balaji Sivanath 26.06.2013, 11:54
quelle
0

Sie können rack-cors in Rails 5 verwenden, um alle URLs zuzulassen.

%Vor%     
Xinyang Li 27.02.2017 11:26
quelle
0

In einer domänenübergreifenden Umgebung schlage ich vor, JSONP statt CORS zu verwenden, weil viele freie Hosts keine domänenübergreifenden CORS unterstützen. Es ist detailliert in Arbeitsbeispielen - sowohl JSONP als auch CORS.

    
Leon Rom 16.03.2017 09:38
quelle