J'ai le code suivant dans ma section .ajax

success: function (data) {
    alert("success");
},
error: function(xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
}

La première alerte ne s'exécute jamais, mais les données sont soumises correctement en utilisant ce qui suit:

data: JSON.stringify({ "solution": JSON.stringify(data) }),  // Data is HTML

En fait, la deuxième alerte revient avec un statut de 200 et tout via la console Google Chrome semble bien.

Une idée? Code complet:

var request = jQuery.ajax({
    url: "/answers/"+content_id,
    type: "POST",
    data: JSON.stringify({ "solution": data }),
    dataType: "json",
    headers: {
        Authorization: 'Basic XXX',
        'X-HTTP-Method-Override': 'PATCH',
        'Content-Type': 'application/json'
    },
    success: function (data) {
        alert("success");
    },
    error: function(xhr, ajaxOptions, thrownError) {
         alert(xhr.status);
      }
});
0
pee2pee 17 janv. 2017 à 14:52

2 réponses

Meilleure réponse

La fonction $ .ajax attend des données JSON comme réponse. Si la réponse n'est pas JSON, le rappel d'erreur sera appelé. Veuillez jeter un œil à ce que vous envoyez depuis le serveur.

2
Ajay M 17 janv. 2017 à 11:56

Veuillez tester certaines choses:

  1. Définissez type: "GET" au lieu de post. Regardez ceci: OBTENIR OU POSTER

  2. Les données des en-têtes sont des chaînes (nom / valeur), et peut-être que votre encodage de données est utf8 donc défini

    headers: {
    
       'Authorization': 'Basic XXX',  //high recommended
       'X-HTTP-Method-Override': 'PATCH',
       'Content-Type': "application/json; charset=utf-8"  //low
    },
    
  3. Testez un autre mot au lieu de données pour éviter les conflits:

    success: function (response)
    
0
Community 23 mai 2017 à 12:24