jqueryを使用して自分のサーバー(Javaサーブレット)にPOSTリクエストを送信するJavaScriptメソッドがあります。応答は、次のタグを含む HTML ページです。
<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でも問題なく動作します。しかし、何らかの理由でこのタグを削除できません。
私の質問は、なぜこれが起こるのですか?とにかくそれを修正してメタタグを保持する方法はありますか?
どうもありがとう。