我正在使用一个 boostrap 对话框来拉入一个包含数量的列表。提交表格后,打开对话框查看数量是否更新,似乎是过时的数据。我用 ajax 调用 Controller ,然后返回数据库以获取更新的信息。但是当我在 Controller (在服务器端)中设置断点时,它永远不会命中。当我在开发人员工具和调试器中为调用 ajax 的函数设置断点时,它只会解决问题。我也没有看到任何控制台错误。
我对 Firefox 没有问题,只有 IE11.. 这是代码:
<script type="text/javascript">
function LocationModal() {
$("#GetLocBtn").attr("disabled", "disabled");
var partNumber = $("#PartNum").val();
var Condition = 'Z';
var urlQry;
var receiveIsChecked = document.getElementById('Receive').checked;
var src = 'removed for security';
$.ajax({
type: "GET",
url: src,
dataType: "json",
contentType: "application/json; charset=utf-8",
data: { partNumber: partNumber, CCODE: Condition },
beforeSend: function () {
},
success: function (data) {
$("#LocationModalContainer").html(data.LocationModal);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
});
};
最佳答案
问题确实是 IE 缓存了 Ajax 调用的结果。您可以通过向每次调用添加 cache: false
来防止这种行为,就像您发现的那样,或者在进行任何调用之前通过 ajaxSetup
全局设置它。
$.ajaxSetup({
cache: false
});
在 jQuery documentation 中不鼓励使用 ajaxSetup ,但如果您不使用任何可能依赖于正常行为的插件并且想快速确保您自己的 ajax 调用没有被缓存,这对您来说可能是一个很好的解决方案。
就个人而言,我对文档中提到的缓存设置干扰风险的真实性表示怀疑,因为基本上您只是让 IE 像其他浏览器一样运行。
关于javascript - 有时只有 IE 11 失去对 ajax 调用的关注 ASP.NET MVC4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42683181/