Einrichten der cross-domain calls on Rails server
Ich bin der Entwicklung einer Rails-API und ein separater html5-Anwendung. Sie teilen nicht die gleiche domain. Wie richte ich meine Rails-Anwendung zum annehmen von cross-domain-requests? Ich habe die folgenden an die Spitze meiner ApplicationController, aber ohne Glück -
before_filter :set_access_control_headers
def set_access_control_headers
headers['Access-Control-Allow-Origin'] = 'http://myfrontend.com:3002'
headers['Access-Control-Request-Method'] = 'GET, OPTIONS, HEAD'
headers['Access-Control-Allow-Headers'] = 'x-requested-with,Content-Type, Authorization'
end
Mein javascript auf meine anderen app sieht wie folgt aus -
var req = $.ajax({
url: url,
type: "GET",
crossDomain: true,
success: function(data, textStatus, jqXHR)
{
alert('success');
},
error: function(jqXHR, textStatus, errorThrown)
{
alert('error');
}
});
Wenn ich diesen Antrag bekomme ich folgende in meinem server-log -
Started OPTIONS "/api/search?location_uuid=22222222222222222" for 127.0.0.1 at 2013-07-15 16:49:56 -0400
Processing by Api::V1::SearchController#index as JSON
Parameters: {"location_uuid"=>"22222222222222222"}
WARNING: Can't verify CSRF token authenticity
User Load (20.5ms) SELECT "users".* FROM "users" ORDER BY name DESC LIMIT 30 OFFSET 0
(63.1ms) SELECT COUNT(*) FROM "users"
Completed 204 No Content in 300ms (ActiveRecord: 0.0ms)
Jemand irgendwelche Tipps bekommen dies korrekt funktioniert?
- Blöd, aber - haben Sie umgesetzt-Aktion für OPTIONEN? Wie geht Sie Weg Aussehen?
- Versuchen
after_filter
stattbefore_filter
. - Das ist eine interessante Beobachtung. In meiner Anfrage kann ich angeben, aber das log zeigt die OPTIONEN header festgelegt wird. Die route sieht wie folgt aus - namespace :api, defaults: {format: 'json'} do-Modul von scope: :v1 übereinstimmen "/search", :zu => "Suche nach#index" end end
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, dass das hinzufügen der Daten-Typ als JSONP vermeidet die cross-browser-Probleme:
Sehen, diese Frage für mehr info -
Kann mir jemand erklären, was JSONP ist, in juristischer Hinsicht?