【问题标题】:AJAX not working on IE and EDGEAJAX 不适用于 IE 和 EDGE
【发布时间】:2018-04-02 15:48:03
【问题描述】:

我在某些方面使用 ajax 制作了一个应用程序,但我发现它不适用于 IE 和 EDGE。 在下面的示例中,我正在尝试从一个 html 页面生成 PDF。 这是我的代码

$(document).ready(function() {
  try {
  var url_string = window.location.href;
  var url = new URL(url_string);
  var token = url.searchParams.get("token");

  if (url_string.includes('/quiz/show_report')) {
    $.ajax({
      cache: false,
      type: "POST",
      url: '/chart.js?token=' + token
    });
  }
 } catch (e) {}
});

在文件上,我在打电话

$.ajax({
  cache: false,
  type: "POST",
  url: '/download_pdf?token=' + token,
  data: {
    natural_chart: $('#natural-chart').attr('data-image'),
    humanities_chart: $('#humanities-chart').attr('data-image'),
    language_codes_chart: $('#language-codes-chart').attr('data-image'),
    mathematics_technology_chart: $('#mathematics-technology-chart').attr('data-image')
  }
}).success(function(e) {
  window.location = '/download?token=' + token;
});

我尝试了什么: 使用缓存假 使用该元标记强制 ie 兼容模式:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

还有:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" >

以及所有其他兼容的元标记。我也试过了

<meta content="no-cache" http-equiv="Cache-Control"> <meta content="no-cache" http-equiv="Pragma">

我们将 jquery 版本更新为较新的版本 (3.2.1),

有人知道我可以做些什么来解决它吗?

提前谢谢你

【问题讨论】:

  • 嗯..我认为这个问题可能和我的一样。你在本地主机上测试这个吗??
  • 我刚刚在 staging 上进行了测试。显然这是 ajax 和 iframe 的问题。你也在使用 iframe 吗?
  • 有人推荐过,但我没试过。 stackoverflow.com/questions/45747418/… 这个帖子是我的问题,和你的问题类似。很快,我不会在本地测试它,所以我希望无论我的结论是否正确都能得到结果。
  • 我在本地、暂存和生产环境中测试了这个问题,但没有成功):
  • 真的吗?那么这对我来说是个大问题。我会尝试找到另一种解决方案,如果我找到了一个效果很好的解决方案,我会与你分享。

标签: javascript jquery ajax internet-explorer


【解决方案1】:

您是否有任何关于它为什么不能在 EDGE 工作的信息?据我所知,EDGE 目前不支持“searchParams”。

【讨论】:

  • 我不知道):我所知道的是我们有另一个应用程序,AJAX 可以在 EDGE 上正常工作,所以,我不知道):
猜你喜欢
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 2020-01-02
  • 2012-02-14
  • 2019-10-26
  • 2018-11-01
  • 2013-04-22
  • 2016-01-29
相关资源
最近更新 更多