2012-02-28 76 views
23

Tôi đang xây dựng ứng dụng Facebook và tôi nhận thấy rằng khi cố gắng nhận trạng thái đăng nhập của người dùng bằng API Javascript, đôi khi tôi gặp lỗi:Từ chối hiển thị tài liệu vì hiển thị bị cấm bởi X-Frame-Options

"Từ chối hiển thị tài liệu vì màn hình bị cấm bởi Tùy chọn khung hình X".

Tôi đã có thể tái tạo điều này mỗi khi tôi nhấn trang "kiểm tra trạng thái đăng nhập" của ứng dụng chỉ trong khi sử dụng Facebook làm trang, thay vì tài khoản người dùng của tôi. Điều này là dễ dàng, đủ để tránh bây giờ mà tôi biết điều này gây ra vấn đề, nhưng rõ ràng là người dùng của tôi có thể không biết điều này.

Có cách nào để xác định xem người dùng có đang sử dụng Facebook làm Trang hay không? Vì điều đó dường như làm hỏng toàn bộ ứng dụng của tôi.

+0

Bạn có thể xác nhận xem tệp kênh.htm của bạn có hoạt động như mong đợi không? – DMCS

+0

có thể trùng lặp của [Cách phát hiện "Bị từ chối hiển thị tài liệu vì màn hình bị cấm bởi Tùy chọn X-Frame." error?] (http://stackoverflow.com/questions/9106413/way-to-detect-refused-to-display-document-because-display-forbidden-by-x-frame) – balexandre

Trả lời

1

Tôi có vấn đề này quá, cố định nó với:. Ứng dụng đã được chuyển hướng người dùng đến một màn hình đăng nhập từ Facebook (hộp thoại auth), trong khi người dùng đã đăng nhập Vì vậy, tôi đã thay đổi mã để chuyển hướng đến trang thành công nếu đã đăng nhập hoặc vào hộp thoại nếu chưa đăng nhập.

+17

Bạn đã làm điều đó như thế nào? – Himmators

+3

Nếu anh ta không giải thích làm thế nào anh ta đã làm nó, tại sao anh ta nhận được kiểm tra màu xanh lá cây? –

0

javascript này có hoạt động không?

document.write(isFacebookPage()?"YES, I'm in a Facebook Page!":"No, not a Facebook Page"); 

function isFacebookPage(){ 
    return (document.location.href.indexOf('/pages/')>0); 
} 
1

Đây là sự cố khi facebook chuyển hướng đến ứng dụng của bạn từ trình duyệt web và sau đó bạn chuyển hướng đến đăng nhập ủy quyền facebook. Bạn phải đảm bảo rằng biểu mẫu thay thế trang và không tải vào khung hình facebook vì nó không thích nó.

Vì vậy, bạn phải làm một chuyển hướng trong sạch như vậy -đây là nút dụ

res.send("<script> top.location.href='"+ "https://www.facebook.com/dialog/oauth?  
client_id=*********&redirect_uri=http://apps.facebook.com/myapp" + "'</script>"); 

Nhìn vào trang facebook dev này và nó ở bước 3

https://developers.facebook.com/docs/howtos/login/server-side-login/

Không có vẻ là sự cố với ứng dụng dành cho thiết bị di động chỉ cần máy tính để bàn

Các vấn đề liên quan