【问题标题】:Query ajax with parameter only works in IE when the IE debugger is open带参数的查询ajax仅在IE调试器打开时在IE中有效
【发布时间】:2017-11-07 15:04:00
【问题描述】:

我刚刚创建了一个 Ajax 方法。 如果我不将任何数据传递给控制器​​,它就可以工作。 如果我想将一些数据传递给控制器​​。 只有当我打开 IE degguer 时它才有效。 我试图将缓存选项添加为false。 但它不起作用。 这是我的一些代码:

function ReportIdLoad(reportId) {
   $.ajax({
        type: 'POST',
        cache: false,
        url: 'WebReportGeneratorView.aspx/ReportIdLoad',
        contentType: 'application/json',
        data: JSON.stringify(reportId),
        dataType: 'json'
    })
}

[WebMethod]
public static void ReloadReportWorkbookContext(string reportId)
{
   //My code
}

提前感谢您的帮助。

【问题讨论】:

  • 将它包裹在 try/catch 中并调用 'alert(error)'。你得到什么错误文本?
  • 听起来像是种族效应。您可能希望异步传递的数据表现得好像是同步的一样。
  • 我没有错误catch错误:(
  • 我指定我的函数是由 window.onbeforeunload 事件触发的。我想在页面关闭时执行服务器端操作。

标签: jquery ajax debugging internet-explorer


【解决方案1】:

@Roamer-1888:

感谢您的曲目。

确实, 听起来像这个问题。

我添加选项:

async: false

我到达了我的断点。

【讨论】:

  • Ludovic,这证明了这一点,但不是一个很好的解决方案。你真的应该省略async:false,从`ReportIdLoad(), and chain ReportIdLoad(...).then(...)`返回一个promise。
  • 您可能想阅读this。有很多东西可以参与,但这将是一笔不错的投资。
  • 我想我不需要 then。因为我不希望 Ajax 查询返回。控制器无需向 ajax 函数返回某些内容即可进行处理。不 ? (这是我的完整评论,抱歉输入键盘错误)
  • 但是必须有一些依赖于 ajax 完成的东西。否则一开始就不会有问题,async:false 也不会产生任何影响。
  • 难道不是因为我在 window.onbeforeunload 中调用我的方法吗?并且窗口在 Ajax 查询结束之前关闭并且它丢失了? window.onbeforeunload = function (event) { var reportId = { "reportId": $("#HiddenReportId").val() }; ReportIdLoad(reportId); };
猜你喜欢
  • 2015-01-14
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多