2016-12-17 2 views
0

Nach dem Blick auf andere Fragen und Antworten finde ich sie nicht wirklich abdecken will ich tun möchte, daher, warum ich eine neue Frage stelle.Behandlung von CORS für Subdomain Ajax Anfragen in Rack

Also, ich baute eine Subdomain passende Middleware für Rack mit der Idee, dass ich meine API in der eigenen Subdomain (api.localhost: 3000) hosten würde.

Das funktioniert zum größten Teil jedoch, wenn ich versuche, eine Ajax-Anfrage zu senden, wirft der Web-Browser einen Zischanfall über CORS.

Also wie füge ich in CORS für Subdomains für meine Subdomain Matching Middleware Bearing im Verstand Ich arbeite im Rack für diese.

Antwort

1

Wenn Sie die Verwendung von CORS oder JSONP verhindern können, schlage ich vor, Sie tun. Die beste Lösung wäre, ein Unterverzeichnis zu definieren, das Ihre API/Anfragen behandelt. Ich hatte eine ähnliche Situation und wenn Sie sich in CORS aka Header Immer Access-Control-Allow-Origin * setzen dann setzen Sie sich für Einschränkungen.

Vermeiden Sie diese Einschränkungen, wenn möglich. Nur meine Erfahrung. Viel Glück!

Ich möchte etwas tun:

http://www.domain.com/rest/api/items/1

Wo Rest ist, wo Ihr Web-Service abgewickelt werden. Verlassen Sie Subdomains, wenn Sie sie nicht benötigen.

Wenn Sie unbedingt CORS verwenden müssen und Sie wissen, dass Anfragen nur von Ihnen bearbeitet werden, können Sie mit jsonp.

JSONP

JSONP wickelt im Wesentlichen Ihre Anfrage in einem JavaScript-Objekt der Callback-Funktion verwenden. Die Anzahl der Daten, die Sie mit diesem Ansatz verarbeiten können, unterliegt gewissen Einschränkungen. Es ist jedoch eine schnelle Möglichkeit, Ihre domänenübergreifenden Anforderungen ohne CORS einzurichten.

Hier ein Beispiel für eine JSONP Anfrage ist:

$.ajax({ 
      type: "GET", 
      url: "http://www.domain.com/rest/WEB055S?callback=?", 
      data: args, 
      contentType: "application/json; charset=utf-8", 
      dataType: "jsonp"}). 
      done(function(data){ 
       alert(data.ERROR); 
      })... 
+0

Interessant ist die eine Möglichkeit, dies ohne Jquery zu tun? – Thermatix

+0

Es gibt einige APIs für PHP für Cross-Domain, die ich kenne, aber die CORS muss noch eingerichtet werden. Der Jsonp ist der einzige Client-Side-Hack, den ich kenne, aber wenn Sie nur serverseitige Cross-Domain-Fähigkeiten benötigen, dann muss der Browser nicht wissen, dass es Cross-Domain ist, was das Leben viel einfacher macht. Sie sollten in der Lage sein, '.htaccess' oder' http.conf' mit der all-all-cross-origin-Direktive einzurichten und gut zu gehen. – yardpenalty

+0

Ich würde es nur hassen, Sie zu sehen, beschränkt auf serverseitige Programmierung lol – yardpenalty

Verwandte Themen