我注意到Microsoft Edge上的一个奇怪行为和一个使用jQuery的ajax请求。 在一个页面中我有这个代码
$("#btnSend").click(function () {
$("#sending").show();
$.ajax({
type: 'GET',
url: '/Report/SaveQuoteOnFile?quote=18',
crossDomain: true,
success: function (msg) {
if (msg == 'True') {
alert('Email sent to the client');
}
$("#sending").hide();
},
error: function (request, status, error) {
$("#sending").hide();
}
});
});
WebApi是用C#构建的,代码类似于
public bool SaveQuoteOnFile(int quote)
{
bool rtn = false;
Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST");
Response.Headers.Add("Access-Control-Allow-Headers", "accept, authority");
Response.Headers.Add("Access-Control-Allow-Credentials", "true");
// code to send an email
// if the email is sent rtn = true
...
return rtn;
}
当我使用 Chrome 打开页面并点击按钮 btnSend 时,Chrome会调用WebAPI,电子邮件会被发送,结果为 true 我显示一条消息。如果我在WebApi中插入断点,我可以一步一步地遵循代码。我假设总是一样的。
现在我用 Microsoft Edge 打开同样的打开并点击按钮 btnSend ,它似乎调用WebApi,结果是 true 我显示了一条消息但电子邮件尚未发送。相同的断点并不会触发。
我认为首先是WebApi代码是错误的。明显。我尝试使用Mozilla和Safari,但它工作正常。
观。我清理了Microsoft Edge上的缓存和其他内容。我点击按钮,现在工作正常!然后,我很开心,并在桌面上向老板展示我的工作。在Microsoft Edge上,我再次单击按钮,没有任何反应。它可以与其他浏览器一起使用。我再次清理缓存和Microsoft Edge上的其他内容......它再次正常工作......
好的,问题是缓存(???)但是我怎么能解决一般这个问题呢? 提前感谢您的任何建议。