Tôi sắp sửa kéo tóc ra ... Tôi đã cố gắng kích hoạt CORS trong ứng dụng Rails này từ sáng và nó không hoạt động. Tôi đã thử sử dụng this, sử dụng Rack Cors Gem, this answer và post tất cả đều không thành công.Làm thế nào để kích hoạt CORS trong Rails 4 App
Ai đó có thể chỉ cho tôi đúng hướng không?
Dưới đây là js của tôi:
var req = new XMLHttpRequest();
if ('withCredentials' in req) {
// req.open('GET', "https://api.github.com/users/mralexgray/repos", true);
req.open('GET', "http://www.postcoder.lc/postcodes/" + value, true);
// Just like regular ol' XHR
req.onreadystatechange = function() {
if (req.readyState === 4) {
if (req.status >= 200 && req.status < 400) {
// JSON.parse(req.responseText) etc.
console.log(req.responseText);
} else {
// Handle error case
}
}
};
req.send();
}
Khi tôi cố gắng url này (từ một khách hàng bên ngoài): https://api.github.com/users/mralexgray/repos mà làm việc ok, tôi giả sử vấn đề là với API Rails của tôi. Liệu tôi có sai?
EDIT: Hiện nay tôi có điều này trong bộ điều khiển của tôi:
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
Tôi đã thử và nó đã không làm việc. Tôi thậm chí đã sử dụng ứng dụng ví dụ và vẫn không có may mắn – WagnerMatosUK
bạn đã bao giờ có điều này để làm việc? Tôi có một front-end góc cạnh thực hiện cuộc gọi và tôi đã thử tất cả các giải pháp là tốt. Các đá quý giá cors không làm việc cho tôi. –