jquery ajax problème dans chrome
j'ai le texte suivant jquery exécution de code sur ma page très bien dans FF et IE, mais chrome semble être en train d'halluciner..
dans FF et IE l'appel est effectué et le résultat est ajouté à la div.
dans google chrome, il appelle ajaxfailed en cas d'échec.
XMLHttpRequest passé à la AjaxFailed la fonction d'un code de statut de "200" et le statusText est "ok". la readystate est de 4 et le responseText est définie pour les données que je souhaite ajouter à la div.. en gros de ce que je peux voir sa vocation, l'échec de la méthode, mais elle n'est pas faute.. j'ai essayé avec les deux get et post demandes et toujours les sauts dans le navigateur chrome.
function getBranchDetails(contactID, branchID) {
$.ajax({
type: "GET",
url: urlToRequestTo,
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: branchDetailsSuccess,
error: AjaxFailed
});
}
function branchDetailsSuccess(result) {
$("#divBranchControl").empty();
$("#divBranchControl").append(" " + result);
$("#branchDiv").tabs();
}
function AjaxFailed(result) {
alert("FAILED : " + result.status + ' ' + result.statusText);
}
Vous devez vous connecter pour publier un commentaire.
Dans l'opération AJAX juste ajouter:
async: false
aprèsdatatype: "json"
, et qui devrait résoudre votre problème. Chrome a question de la manipulation des appels asynchrones.Je n'ai vu que cette question a obtenu beaucoup de points de vue, et il est toujours ouvert. J'avais complètement oublié et j'espère que cela me permettra de le fermer.
Paramètre le type de données de l'argument de rien, ou même le fait de retirer le type de données argument complètement permettra de résoudre le problème.
Dans mon exemple, je suis de retour d'un rendu de la vue (un extrait de code html dans une chaîne) et, dans ce code, je suis en précisant le type de données en json, alors qu'en réalité il ne l'est pas. La plupart des autres navigateurs semblent ignorer le type de données si son incorrecte et avancer dans la vie, ce qui me permet d'ajouter le code html de résultat.
Chrome renvoie une erreur.
Le texte d'état est OK, le code d'état est de 200, car la requête ajax est allé par le biais de l'amende. Le problème n'a rien à voir avec la demande elle-même, le problème est que les données de retour n'est pas ce que j'ai dit chrome il serait.
Donc chrome pauses.
Si je supprime le type de données argument complètement chrome chiffres à ce que les données, c'est quand il l'obtient. Si j'ai mis le type de données de l'argument de "html", puis il fonctionne aussi très bien.
Longue histoire courte, le problème n'est pas de chrome. Son moi. Parce que je suis bête comme ça. Je suis ce marquage comme la réponse à cette question que de réponses, l'exemple que j'ai présenté dans la question d'origine.
Dans les commentaires d'autres ont décrit d'autres situations où cette solution est la plus probable ne va pas aider.
Je ne sais pas si vous avez encore ce problème, mais je suis tombé sur une erreur similaire juste aujourd'hui. J'étais à l'appel d'une page aspx pour retourner une chaîne de caractères avec responseText et Chrome ne revint jamais quoi que ce soit. S'est avéré que j'avais une Réponse.Proche dans ma page aspx qui a travaillé partout ailleurs, mais n'a probablement pas envoyer des en-têtes ou quelque chose de Chrome et/ou de Safari. Espérons que l'aide à quelqu'un.
après une journée et demi que je suis dessus, donc peut je vous présente.....
Essayez de régler le paramètre de données à "".
Pour
GET
demandes, le paramètre de données est ajouté à l'URL. Je ne sais pas pourquoi google Chrome aurait un problème avec ça, mais ça vaut le coup 🙂Je viens de tomber sur cela en Chrome (était très bien dans Firefox) et en ajoutant
async: true
à l'ajax paramètres résolu.async: true
est le paramètre par défaut? api.jquery.com/jquery.ajax. Avez-vous peut-être changer quelque chose d'autre?Essayez ceci pour la réussite :
Utilisation de la méthode POST dans le servlet et le changement
type:POST
dans$.ajax
.