2012-04-22 28 views
13

Tôi đang sử dụng mã iFrame đơn giản sau để tải Yahoo nhưng không tải được. trong Trình kiểm tra Chrome, tôi thấy trạng thái URL là 301 trước và sau đó hủy. Bất kỳ ý tưởng tại sao nó xảy ra?iFrame không tải URL

<iframe name="iframe1" src="http://yahoo.com"></iframe> 
+0

Bạn có thể muốn xem xét việc đánh dấu một câu trả lời là đúng. – iambriansreed

Trả lời

23

Bạn có thể nhận được một thông báo lỗi trong nhật ký mà đọc một cái gì đó như thế này:

"Refused to display document because display forbidden by X-Frame-Options."

Để trả lời câu hỏi của bạn:

Yahoo đang làm điều này để avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.

Để biết thêm thông tin, hãy đọc: https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

+0

Tôi đang sử dụng Chrome – Volatil3

+2

Tôi cũng vậy. Vì vậy, đó chính xác là thông báo lỗi bạn sẽ thấy. – iambriansreed

+0

@ Volatil3 Đã cập nhật. – iambriansreed

4

Trang web cũng rất dễ hỏi để không tải nếu bạn ở trong iframe có javascript đơn giản. Ví dụ: twitter thực hiện điều này

<script type="text/javascript"> 
//<![CDATA[ 
    if (window.top !== window.self) { 
     document.write = ""; 
     window.top.location = window.self.location; 
     setTimeout(function() { 
      document.body.innerHTML = ''; 
     }, 1); 
     window.self.onload = function (evt) { 
      document.body.innerHTML = ''; 
     }; 
    } 
//]]> 
</script> 

Tôi không thấy lỗi giao diện điều khiển tại đây và vì vậy tôi đoán đây là trường hợp ở đây.

Yahoo! JavaScript bị làm xáo trộn nhưng bạn có thể thấy chắc chắn họ đang xóa nội dung nào đó ở đoạn mã này. (Mã được lấy từ trang web của yahoo)

if(self!==self.top){b=function(){if(g.readyState=="complete"){f.remove(g,e,b); 
+0

@downvoter: bạn có thể giải thích tại sao không? – naveen

+0

Tôi nghĩ câu trả lời của bạn không thực sự trả lời câu hỏi được hỏi. –

+0

Gián tiếp ông đã trả lời, cung cấp lý do của nó. Trước khi trả lời, tôi đã nghĩ rằng có một số vấn đề ở cuối của tôi. Tôi cũng học được cách để tiết kiệm mặt của tôi cho bất kỳ embedding.Thanks @naveen – Volatil3

3

thực sự yahoo, google và trang web đó không cho phép iframe vào trang web của họ. Họ chặn các iframe hiển thị trang web của họ

2

Nếu trang web lưu trữ trang web buộc sử dụng kết nối an toàn HTTPS, một số trình duyệt (chrome chắc chắn) sẽ yêu cầu tất cả tài nguyên mạng sử dụng HTTPS.

URL trong iframe hiện tại của bạn đang sử dụng HTTP src="http://yahoo.com"

Hãy thử sử dụng HTTPS: src="https://yahoo.com"

+0

Đây là câu trả lời đúng duy nhất! Trong trường hợp của tôi. Cảm ơn! – domih

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