CORS - Cross-Domain-AJAX Ohne JSONP, Indem Ursprung Auf dem Server
Ich habe zwei verschiedene apps auf dem gleichen server, mit der EmberJS man versucht zu tun, cross-domain Aufrufe auf meine backend-API.
Richte ich mein backend-API zu ermöglichen cross-domain-requests aus, dass bestimmte Herkunft. Gibt es eine Möglichkeit jedoch, um zu vermeiden, mit JSONP mit so einem set-up? $.ajax
blockiert cross-domain-Anfragen, bevor Sie überhaupt gesendet werden. Wenn nicht, was ist der Punkt, CORS, die server-Seite hatte ich implementiert, um die Annahme von Anfragen durch meine JS front-end-Quelle?
BEARBEITEN
AJAX-request:
$.ajax({
url: "api.lvh.me:3000/accounts/login",
data: cred,
type: "POST",
xhrFields: {
withCredentials: true
},
success: function(response){
alert('succeeded!');
console.log(response);
alert(response);
},
failure: function(message){
alert("failed");
console.log(message);
alert(message);
}
});
- Warum gehst du nicht einfach reverse-proxy-backend, so dass CORS-problem wird nie auftreten? Edit: ich glaube nicht, dass $.ajax-Bausteine diesen Anforderungen, da Sie, um den server auffordern, ob Sie erlaubt sind oder nicht ...
- Nicht reverse-proxy erlauben, alle cross-origin-requests?
- Haben Sie versucht vorangestelltem 'http://', um die url-Attribut in $.ajax-call?
- das war es!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Notwendigkeit zu verwenden, JSONP, wenn Sie aktivieren CORS.
wenn dieser header wird in der Antwort, dann normalen XmlHttpRequest wird der Zugang zu der Antwort, als ob es ist wie derselben Domäne. Überprüfen, ob der header korrekt gesetzt ist.
Ich hoffe, dass dieser link wird Ihnen helfen, wenn Sie mit jquery Ein CORS-POST-request Werke von plain javascript, aber warum nicht mit jQuery?
Update:
Beispiel
Versuchen, diese in einer beliebigen Domäne, erhalten Sie Antwort.
Update-Lösung:
Anfrage-url ohne "http://" das problem verursacht hat, voranstellen "http://" das Problem gelöst,
Access-Control-Allow-Origin: *
im header Antwort, aber ich habe noch immer den gleichen Fehler. Ich bin mit jQuery 1.9 so, dass Problem mit jQuery vs. JS sollte kein Problem sein. Bitte siehe mein edit für die jQuery-AJAX-request sende ich.Können Sie
rack-cors
im Schienen 5, um es zu erlauben, alle URLs.In der cross-domain-Umgebung, schlage ich JSONP statt CORS becase viele Kostenlose hosts nicht unterstützt cross-domain-CORS. Es ist ausführlich in funktionierende Beispiele - beide JSONP und CORS.