Zajmuję się tworzeniem interfejsu Rails API i osobnej aplikacji html5. Nie mają tej samej domeny. Jak skonfigurować aplikację Rails do akceptowania żądań między domenami? Dodałem następujące na szczycie mojej ApplicationController, ale bez powodzenia -Konfigurowanie wywołań między domenami na serwerze Rails
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
Moje javascript na mojej innej aplikacji wygląda następująco -
var req = $.ajax({
url: url,
type: "GET",
crossDomain: true,
success: function(data, textStatus, jqXHR)
{
alert('success');
},
error: function(jqXHR, textStatus, errorThrown)
{
alert('error');
}
});
Gdy ten wniosek, otrzymuję w moim dzienniku serwera -
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)
Ktoś ma jakieś wskazówki, jak to zrobić, aby działał poprawnie?
Głupi ale - czy zostały wdrożone działania dla OPCJI? Jak wyglądasz jak to wygląda? –
Wypróbuj 'after_filter' zamiast' before_filter'. – mccannf
To interesująca obserwacja. W moim zgłoszeniu określam GET, ale dziennik wskazuje, że ustawiony jest nagłówek OPTIONS. Trasa wygląda następująco - nazw: api, domyślnie: {format: 'json'} zrobić modułu zakres:: V1 zrobić mecz "/ Szukaj": to => "szukaj Wskaźnik" końcowy końca – Blake