2017-10-18 5 views
-1

J'ai un appel ajax à la méthode php suivante:post jQuery ne fonctionne pas alors vous obtiendrez des œuvres avec la même structure de

public function test(){ 
     die(json_encode(['test' => 'test1'])); 
    } 

Mon appel ajax fonctionne lorsqu'il est réglé comme GET, mais pas comme POST. L'appel GET est:

$.ajax({ 
    type: 'get', 
    url: url, 
    success: function(msg) { 
     log(msg); 
    }, 
    dataType: 'json' 
}); 

qui retourne avec succès l'élément JSON. Mais quand je l'ai placé comme POST:

$.ajax({ 
    type: 'post', 
    url: url, 
    success: function(msg) { 
     log(msg); 
    }, 
    dataType: 'json' 
}); 

Retourne rien. Si j'ai supprimé le type de données, il retournera toute la page Web d'où il est déclenché.

Je dois faire la demande comme POST puisque j'enverrai une grande quantité de données.

Merci.

+0

Comment appelez-vous test()? –

+0

Cela fait partie du paramètre url, que je ne pense pas être le problème car il fonctionne avec GET – MrCujo

+0

Non .. comment exécutez-vous la fonction test()? Et ce pourrait être un problème si vous testez quelque chose qui est un GET vs POST, et l'exécution de test() en fonction de cette décision –

Répondre

1

Avez-vous activé la protection CSRF?

+0

C'était un problème avec CSRF comme vous l'avez souligné! Je l'ai mis à FAUX (en attendant) et cela a fonctionné. Je le réparerai plus tard, au moins je récupère les données pour le moment. Merci – MrCujo

+1

Vous êtes welcolme .... Le problème est avec la régénération CSRF ... Si le jeton est régénéré à chaque fois que votre ajax ne fonctionnera pas. Je l'ai corrigé en mettant csrf_regenerate à FALSE. –