X-Domain Form POST 在 Internet Explorer 9 中变为 GET

X-Domain Form POST Becomes GET in Internet Explorer 9

本文关键字:GET Explorer Form POST Internet X-Domain      更新时间:2023-09-26

我正在尝试使用javascript将表单发布到我公司的另一个子域。该地址指向以编程方式生成 PDF 并将其"内联"返回的 API,以便它不会转到"下载"文件夹,而是在新选项卡中打开。

这适用于所有现代浏览器,但在 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按照我想要的方式运行?

我认为这是因为 Win 7 中的 IE 安全性而发生的尝试>互联网选项的工具>互联网/本地>安全>取消选中"启用保护模式"。