Có, yêu cầu đến một cổng khác là yêu cầu tên miền chéo. Trình duyệt đang thực hiện yêu cầu OPTIONS preflight (CORS) và không nhận được câu trả lời. Đó là sau đó thả yêu cầu ban đầu. Bạn cần phải có máy chủ đáp ứng với các tiêu đề CORS thích hợp để yêu cầu OPTIONS này. Trình duyệt sau đó sẽ thực hiện yêu cầu orignal.
Đây là more information on CORS.
Đây là mã từ bộ điều khiển ứng dụng của tôi:
class V1::ApplicationController < ApplicationController
after_filter :cors_set_access_control_headers, :log_user
# respond to options requests with blank text/plain as per spec
def cors_preflight_check
logger.info ">>> responding to CORS request"
render :text => '', :content_type => 'text/plain'
end
# 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-Headers'] = 'X-AUTH-TOKEN, X-API-VERSION, X-Requested-With, Content-Type, Accept, Origin'
headers['Access-Control-Allow-Methods'] = 'POST, GET, PUT, DELETE, OPTIONS'
headers['Access-Control-Max-Age'] = "1728000"
end
Và từ tuyến đường.rb:
match '/*path' => 'application#cors_preflight_check', :via => :options
Ngoài ra còn có một plugin giá có thể xử lý này: rack-cors
Tôi đang sử dụng 'rack-cors' nhưng một lần nữa, khi chạy một yêu cầu máy chủ đường ray của tôi không hiển thị bất cứ điều gì. Các yêu cầu Cross-Domain có hiển thị trên máy chủ Rails hay không và sau đó bị từ chối hoặc AJAX có từ chối chúng trước khi chúng được gửi không? – darksky
Điểm 'cors' nếu' AJAX' chặn các yêu cầu miền chéo trước khi chúng được gửi đi là gì? – darksky
AJAX luôn gửi yêu cầu OPTIONS trước chuyến bay cho các yêu cầu miền chéo. Một số công cụ gỡ lỗi trình duyệt không hiển thị điều này. Tôi không thể làm việc rak-cors nên tôi đã thực hiện yêu cầu OPTIONS xử lý bản thân mình. – buuda