Je me demande quelle est la meilleure façon de passer un appel AJAX.

C'est ce que j'ai en ce moment, et cela fonctionne très bien.

$.ajax({

    url: "/rest/computer",
    type: "GET",
    dataType: "json",

    data: {
        assessmentId: "123",
        classroomId:  "234"
    },

    success: function(objects) {


    // .... code ....


    }
});

Je cherche actuellement un autre moyen de passer un appel Ajax. Si tel est le cas, dois-je utiliser mon approche?

Dois-je déplacer un appel Ajax dans sa propre fonction et le rappeler?

Toute suggestion à ce sujet sera très appréciée.

4
code8888 17 juil. 2015 à 20:59

4 réponses

Meilleure réponse

Oui, il existe d'autres moyens d'appeler ajax

jQuery

var get_data = function(){
    var result = false;
    $.get('/rest/computer').done(function(awesome_data){
        result = awesome_data;
    });

    return result;
}

$ .getJSON

$.getJSON( '/rest/computer', { assessmentId:"123", classroomId:"234"})
  .done( function(resp){
    // handle response here
}).fail(function(){
   alert('Oooops');
});

Si vous n'utilisez pas jQuery dans votre code, cette réponse est pour vous

Votre code devrait être quelque chose dans le sens de ceci:

function foo() {
    var httpRequest = new XMLHttpRequest();
    httpRequest.open('GET', "/rest/computer");
    httpRequest.send();
    return httpRequest.responseText;
}

var result = foo(); // always ends up being 'undefined'
5
Zong 17 oct. 2016 à 17:51

Il existe également une API asynchrone que tous les navigateurs modernes prennent en charge

fetch('./api/projects',
  {
    method: 'post',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      title: 'Beispielprojekt',
      url: 'http://www.example.com',
    })
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.error(error);
  });
1
Nasser Abbassi 7 oct. 2019 à 12:37

Voici également un appel de type ajax utilisant la méthode post.

var assessmentId = "123"
var formURL = '/rest/computer';
var postData = { "action":"add","data":assessmentId};
$.post(formURL, postData, function( response ) {
    // handle response here 
});
1
Basheer AL-MOMANI 8 nov. 2016 à 11:40

Je ne sais pas vraiment quel est le contexte sous-jacent de votre question, mais par exemple, vous pouvez utiliser:

$.getJSON( url, { assessmentId:"123", classroomId:"234"})
  .done( function(resp){
    // handle response here
}).fail(function(){
   alert('Oooops');
});

$ .getJSON est un wrapper pour $.ajax qui simplifie la nécessité d'ajouter un certain nombre d'options déjà prédéfinies

1
charlietfl 17 juil. 2015 à 18:10