Я пытаюсь опубликовать форму и получить ответ сервера в целевом iframe, используя простой HTML.Пока что у меня есть:
<iframe name="iframe" id="iframe" onload="loaded()" style="display:none"></iframe>
, чем у меня есть:
<form id="form" action="/rpc/test" method="post" target="iframe">
<!--....... form input ............-->
<input type="submit" class="button" name="Test" id="Test" value="Test">
</form>
и, наконец, в теге script у меня загружена функция, которая должна обработать ответ:
<script language="javascript" type="text/javascript">
function loaded() {
var ifr = document.getElementById('iframe');
var dc = ifr.contentWindow || ifr.contentDocument;
if (dc.document) {
dc = dc.document;
}
var rsp = dc.documentElement.innerText || dc.documentElement.textContent;
var obj = JSON.parse(rsp);
if (obj && obj.success === true) {
// DO very important things
return;
}
}
</script>
Это работает абсолютно нормально во всех возможных браузерах, кроме IE9 (но не тестируйте его на более низких версиях IE).В IE9 ответ представляет собой файл, который содержит правильный ответ сервера.IE9 спрашивает меня "Хотите открыть или сохранить .....?"
Мой сервер - это nodejs.Я установил ответ:
resposnse.writeHead(200, { 'Content-Type': 'application/json' });
Я могу отследить в сетевом мониторе IE9, что Content-Type является 'application / json'
Есть идеи?