X框架选项阻止在iframe中显示Ajax响应

问题描述:

我有一个JavaScript方法,使用jQuery将POST请求发送到我自己的服务器(Java servlet)。响应是一个HTML页面,其中包含标签:X框架选项阻止在iframe中显示Ajax响应

<meta http-equiv="X-FRAME-Options" content="SameOrigin"> 

此页面然后显示在现有页面的iframe中。 jQuery的方法是这样的:

function ajaxCall(urlString, params){ 
    $.ajax({ 
     type: "POST", 
     dataType:'html', 
     url: urlString , 
     data: params, 
     success: function(msg){ 
      $("#A1B2C3D4E5").contents().find('html').html(msg); 
     }, 
     failure: function(msg) { 
      $("#A1B2C3D4E5").contents().find('html').html(msg); 
     } 
    }); 
} 

具有ID A1B2C3D4E5的HTML组件是一个iframe。问题是,返回的HTML页面不显示在Chrome中的iframe中。它给出的错误消息是:

Refused to display 'about:blank' in a frame because it set 'X-Frame-Options' to 'SameOrigin'. jquery-1.7.2.min.js:32 
Blocked a frame with origin "https://localhost:8443" from accessing a frame with origin "null". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "data". Protocols must match. 

它适用于Firefox,但不适用于Chrome。

通过去除元部分:

<meta http-equiv="X-FRAME-Options" content="SameOrigin"> 

它在Chrome中正常工作为好。但由于某种原因,我无法删除此标签。

我的问题是,为什么会发生这种情况?无论如何解决它,仍然保持meta标签?

非常感谢。

如果指定了“SameOrigin”,则此元标记用于防止页面显示在另一个网站的iframe内。

我收到的网页来自通过POST的Ajax调用,而不是来自iframe的包含网页。在这种情况下,它被归类为不同的原点而不是相同的原点。

因此,如果元标记带有“SameOrigin”值,则通过jquery ajax调用请求的页面不能显示在托管页面的iframe内。