我有一个html页面,我希望在loading image
之间显示处理ajax call
以进行保存和成功。
那个页面我将动态crm作为网络主题。
问题是,在mozilafirefox中加载工作正常,但没有工作 铬。
脚本:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
其他代码:
<img src="sm_loading.gif" id="loading" style="display:none" />
<input class="custom-btn" id="btnsave" value="Save" onclick="SaveData();" type="button">
function SaveData() {
$('#loading').show();
var stocktrack = {};
stocktrack.sm_Description = descval;
var jsonPO = window.JSON.stringify(stocktrack);
var oDataUri = serverUrl + "/XRMServices/2011/OrganizationData.svc/sm_stocktrackingSet";
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: oDataUri,
data: jsonPO,
async: false,
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function (data, textStatus, XmlHttpRequest) {
debugger;
$('#loading').hide();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
}
请建议是否有任何解决方案。
答案 0 :(得分:0)
我在Firefox中运行了你的代码并且它运行良好。正如你所说,我也在Chrome中运行并没有得到任何结果。但是,通过在Chrome中打开调试器,使用F12,我收到以下错误。
主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用。如需更多帮助,请查看https://xhr.spec.whatwg.org/。
要解决此问题,请将ajax调用中的async标志设置为true。
如果您希望防止用户在异步调用期间按下内容,这是完全可以理解的,我建议您使用透明阻止层。
答案 1 :(得分:0)
我得到了答案。
使用setTimeout(function(){..我们的代码..},10);我可以使用async:false显示chrome中的加载。
参考链接:
https://www.experts-exchange.com/questions/25187194/jQuery-async-false-with-beforeSend.html
答案 2 :(得分:0)
加载面板仅适用于异步:True, 其他方面它只适用于firefox,大多数其他浏览器不显示加载面板。 但是使用异步假,除了成功和错误(回调函数)之外的所有代码都将被执行。