Tôi có một ứng dụng Rails đang chạy trong Heroku và một tệp html sử dụng Jquery Mobile.Có vấn đề với Access-Control-Allow-Origin
Ứng dụng Rails trả về dữ liệu JSON (sử dụng RABL), ứng dụng di động của tôi giả sử để nhận và hiển thị.
Đây là những gì tôi đang làm, tôi đang cung cấp nội dung phản hồi cho chế độ xem danh sách. Khá đơn giản. Nếu tôi sử dụng Chrome, bảng điều khiển hiển thị lỗi Không được phép xuất xứ null bởi Access-Control-Allow-Origin. NẾU tôi thử trên Firefox, không có lỗi trên bảng điều khiển, nhưng dữ liệu không được hiển thị, ngay cả khi trình kích hoạt cảnh báo.
function getBuses(){
$('#content').append("<ul id='bus_list' data-role='listview' data-inset='true'</ul>")
$('#content').trigger("create");
//Se llama a la API para retornar todos los buses
$.getJSON('http://someapp.herokuapp.com/buses.json', function(data)
{
$.each(data, function(key, value)
{
alert(key + ":" + value);
$('#bus_list').append('<li id="'+bus.id+'">'+bus.numero_de_linea+'<li/>');
});
});
$('#bus_list').listview("refresh");
}
Đây là những gì server trả lời:
[{"id":7,"numero_de_linea":"604"}]
Tôi đã đọc trên Access-Control-Allow-Origin trong một thời gian bây giờ, nhưng tôi không chắc chắn những gì tôi phải làm, sao tôi nên thay đổi thứ gì đó trong máy chủ của mình? Tôi đang thử tệp html này trên trình duyệt của mình, nhưng nó cũng không hoạt động trên điện thoại của tôi. Tôi đã đặt $.support.cors
và $.mobile.allowCrossDomainPages = true;
thành true khi mobileinit
chạy.
Mọi thông tin về những việc cần làm tiếp theo sẽ được đánh giá cao.
EDIT: Nếu bạn đang làm việc với RABL, hãy nhớ đặt biến enable_json_callback thành true trong trình khởi tạo. Bạn phải kích hoạt điều này từ cả hai phía.
Cám ơn đáp ứng. Tôi nên gọi hàm này ở đâu? – Sebastialonso
Nó phải là một 'after_filter' cho hành động mà bạn đang gọi trong cuộc gọi ajax của bạn. Nếu có một số cuộc gọi ajax đến ứng dụng đường ray, thì điều này có thể được sử dụng như một 'after_filter' trong' application_controller'. – Nerve
Để biết cách thiết lập điều này dựa trên môi trường, hãy xem https://stackoverflow.com/a/17815546/912563 – lightswitch05