2016-02-04 2 views
0

Я пытаюсь отправить форму другому субдомену в моей компании, используя javascript. Адрес относится к API, который программно создает PDF-файл и возвращает его «inline», поэтому вместо перехода в папку «Загрузка» он открывается на новой вкладке.X-Domain Form POST становится GET в Internet Explorer 9

Это работает во всех современных браузерах, но не работает в IE 9. При расследовании по каким-либо причинам моя форма представляется как GET (без тела) вместо POST. Вот мой код:

HTML:

<form id="pdfDownloadForm" style="display:none" method="POST" target="_blank"> 
    </form> 

Javascript:

var form = document.getElementById("pdfDownloadForm"); 
    form.setAttribute("action", apiUrl + "download/pdf"); 
    form.setAttribute("method", "POST"); 
    form.setAttribute("target", "_blank"); 

    var input = document.createElement("input"); 
    input.setAttribute("type", "hidden"); 
    input.setAttribute("name", "html"); 
    input.setAttribute("value", getHtmlToConvertToPdf()); 
    form.appendChild(input); 

    form.submit(); 

Поскольку я использую JQuery, я также попытался $(form).trigger('submit'), просто чтобы увидеть, если он сделал разницу (это не так).

Любая идея, почему IE9 решит превратить это в GET? Является ли это старой междоменной «безопасностью» функции, с которой мне придется работать, или есть только что-то, что мне не хватает, что приведет к тому, что IE9 будет вести себя так, как я хочу?

ответ

0

Я думаю, что это происходит из-за безопасности IE в Win 7 try Инструменты> Свойства обозревателя> Безопасность> Интернет/местный> Снимите флажок «Включить защищенный режим».

+0

Я пробовал это сделать, но это не исправить. Кроме того, я все равно не могу попросить моих пользователей сделать это. – Pharylon