2016-08-20 1 views
0

J'ai une page html où je veux afficher le traitement avec loading image entre ajax call pour enregistrer et son succès. Et cette page j'ai mis en dynamique crm comme webresourse.Chargement de l'image dans l'appel ajax ne fonctionne pas en chrome

Problème est que le chargement fonctionne bien dans mozilafirefox mais ne fonctionne pas dans chrome.

Script:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 

Autre code:

<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); 
     } 
    }); 
} 

S'il vous plaît suggérer si toute solution est là.

+0

Veuillez afficher la description de l'erreur. –

+0

Bonjour Armen, Il n'y a pas d'erreur dans la console. Et si je ne le cache pas alors après avoir terminé la fonction entière signifie après que l'image soit sauvegardée avec succès. il est tellement déroutant pour moi de trouver une solution. –

+0

Bonjour, essayez d'accéder au panneau "Réseau". Et rechargez la page avec le script. –

Répondre

0

J'ai exécuté votre code dans Firefox et cela a fonctionné. J'ai également couru dans Chrome et n'ai rien obtenu, comme vous l'avez dit. Toutefois, en activant le débogueur dans Chrome, en utilisant F12, j'ai l'erreur suivante.

XMLHttpRequest synchrone sur le thread principal est déconseillée en raison de ses effets préjudiciables à l'expérience de l'utilisateur final. Pour plus d'aide, vérifiez https://xhr.spec.whatwg.org/.

Pour résoudre ce problème, définissez l'indicateur asynchrone à l'intérieur de votre appel ajax égal à true.

Si vous voulez empêcher votre utilisateur d'appuyer sur des éléments pendant votre appel asynchrone, ce qui est parfaitement compréhensible, je vous suggère d'utiliser un calque de blocage transparent.

+0

Thanx..it fonctionne. si je veux utiliser un appel ajax en cas de succès d'un autre appel ajax (appel imbriqué d'ajax) alors j'ai besoin d'async false. Avez-vous une solution pour cela? –

0

Panneau de chargement ne fonctionne avec async: True, Autre sage, il ne fonctionne que sur Firefox et la plupart des autres navigateurs ne montre pas le panneau de chargement. Mais avec asynchrone false tout le code ci-dessous autre que le succès et l'erreur (fonctions de rappel) sera exécuté.

+0

Pourriez-vous s'il vous plaît clarifier cette réponse. – mayersdesign