Internet Explorer要求下载POST请求作为下载


Internet Explorer asks to download POST request as a download

我继承了一个PHP脚本,它在url POST中做了很多逻辑工作。一旦我们在IE9中发出请求,它就会要求用户下载一个"true"类型的下载,其大小与POST请求非常相似。在任何情况下,我们都不会看到数据没有保存在服务器上的任何行为——提交后的预期行为只是简单地请求下载。

实际的POST调用是使用jQuery.ajax:激发的

$.ajax({
  type: "POST",
  url: "profile/edit-profile-info.php",
  data:"mail="+mail,
  success: function() {
    console.log('Success!!!');
    location.reload('true'); //Reloads the page with the form
  }
}).done(function() {
    console.log('Done!!!');
    location.reload('true'); //Reloads the page with the form
});

根据我所知,重载命令是在浏览器对象空间中继承的。

处理这些数据的实际PHP脚本本质上是将数据保存在ORM中(而不是代码中),并以text/plain 的形式返回请求

header('Content-Type: text/plain; charset=utf-8');
$data->record->mail = $_POST['mail'];

我们尝试发送另一个内容类型作为请求,但它在Chrome、Firefox等中无法运行。

查看继承的HTML,字段被填充在没有表单标记的层次结构中,这让我对原因感到犹豫。我不完全确定这是否是罪魁祸首。不幸的是,我不能轻易地给出一个演示供审查。但如果有人看到过这一点或对这一原因有任何想法,我们将不胜感激。

删除location.reload('true')中true周围的逗号;它需要一个布尔值,并将其作为字符串输入,这不是IE所期望的。