Rails 4 + angularjs CORS - 도메인 간 구현 방법
2485 단어 corsruby-on-rails
라우팅 옵션 추가 방법
도메인 간에 먼저 라우팅을 구성합니다.yml
match 'customers', to: 'customers#index', via: [:options]
resources :users
````
:
```ruby
Prefix Verb URI Pattern Controller#Action
users OPTIONS /customers(.:format) customers#index
GET /customers(.:format) customers#index
POST /customers(.:format) customers#create
new_user GET /customers/new(.:format) customers#new
edit_user GET /customers/:id/edit(.:format) customers#edit
user GET /customers/:id(.:format) customers#show
PATCH /customers/:id(.:format) customers#update
PUT /customers/:id(.:format) customers#update
DELETE /customers/:id(.:format) customers#destroy
root GET / customers#index
여기 두 번째 줄에 옵션이 있어요.
before_ 추가filter 및 after_filter, CORS 활성화 ruby
CustomersController < ApplicationController
skip_before_filter :verify_authenticity_token
before_filter :cors_preflight_check
after_filter :cors_set_access_control_headers
# For all responses in this controller, return the CORS access control headers.
def cors_set_access_control_headers
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Max-Age'] = "1728000"
end
# If this is a preflight OPTIONS request, then short-circuit the
# request, return only the necessary headers and return an empty
# text/plain.
def cors_preflight_check
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Allow-Headers'] = 'X-Requested-With, X-Prototype-Version'
headers['Access-Control-Max-Age'] = '1728000'
end
def index
@customers = Customer.all
respond_to do |format|
format.json { render :json => @customers }
end
end
end
skip_ 추가before_filter :verify_authenticity_token은 rails의 422를 건너뛰기 위한 것입니다 ('Can't verify CSRF token authenticity')
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
실행 전 요청에 대한 응답이 액세스 제어 검사를 통과하지 못함: 'Access-Control-Allow-Origin'
안녕하십니까
내 문제
메인 파일에 cors 패키지를 추가했습니다.
index.js
front=end 파일 게시 요청
내 백엔드 파일 실행 포트 = 3001 때문에
포트에서 실행되는 프런트 엔드 파일 = 3000
**...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
yml
match 'customers', to: 'customers#index', via: [:options]
resources :users
````
:
```ruby
Prefix Verb URI Pattern Controller#Action
users OPTIONS /customers(.:format) customers#index
GET /customers(.:format) customers#index
POST /customers(.:format) customers#create
new_user GET /customers/new(.:format) customers#new
edit_user GET /customers/:id/edit(.:format) customers#edit
user GET /customers/:id(.:format) customers#show
PATCH /customers/:id(.:format) customers#update
PUT /customers/:id(.:format) customers#update
DELETE /customers/:id(.:format) customers#destroy
root GET / customers#index
ruby
CustomersController < ApplicationController skip_before_filter :verify_authenticity_token before_filter :cors_preflight_check after_filter :cors_set_access_control_headers # For all responses in this controller, return the CORS access control headers. def cors_set_access_control_headers headers['Access-Control-Allow-Origin'] = '*' headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS' headers['Access-Control-Max-Age'] = "1728000" end # If this is a preflight OPTIONS request, then short-circuit the # request, return only the necessary headers and return an empty # text/plain. def cors_preflight_check headers['Access-Control-Allow-Origin'] = '*' headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS' headers['Access-Control-Allow-Headers'] = 'X-Requested-With, X-Prototype-Version' headers['Access-Control-Max-Age'] = '1728000' end def index @customers = Customer.all respond_to do |format| format.json { render :json => @customers } end end end
skip_ 추가before_filter :verify_authenticity_token은 rails의 422를 건너뛰기 위한 것입니다 ('Can't verify CSRF token authenticity')
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
실행 전 요청에 대한 응답이 액세스 제어 검사를 통과하지 못함: 'Access-Control-Allow-Origin'안녕하십니까 내 문제 메인 파일에 cors 패키지를 추가했습니다. index.js front=end 파일 게시 요청 내 백엔드 파일 실행 포트 = 3001 때문에 포트에서 실행되는 프런트 엔드 파일 = 3000 **...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.