2012-06-30 2 views
0

J'utilise Jquery pour faire une demande de paiement ajax:Ajax-jquery alerter un 404

$('#my-btn').click(function() {ldelim} 
    var comment = $('#textarea').val(); 
    var m = {$id}; 
    var data = {ldelim} 
      comment: $('#textarea').val(), 
      m: {$id} 
     {rdelim}; 

     $.post('index.php?page=page',data,function(callback_data){ldelim} 

     var content = $('div.my-btn').html(); 
     $('div .comments').append(content); 
       ... 
     alert(callback_data); 
{rdelim}); 
{rdelim}); 

(La raison de cette {rdelim} ou {$ id} est que je suis en utilisant le moteur de template Smarty.)

Le traitement de mon code php fonctionne très bien: le bdd est correctement implémenté mais l'alerte du callback envoie un '404', m'empêchant de répercuter un numéro de données de mon code php. (Quand j'appelle un écho ($ data) dans mon code php, j'obtiens l'alerte $ data + 404).

Est-ce que quelqu'un a une idée?

Best, Newben

+0

i ont la même réponse numérique. Une façon de se débarrasser de 404 est de faire des callback_data = (callback_data-404)/1000; mais ce n'est vraiment pas acceptable – Newben

Répondre

1

Le rappel pour jQuery est de .post() seulement pour le succès (HTTP code d'état 2xx) réponses. Pour avoir un rappel pour 404 de vous devez utiliser .ajax():

$.ajax({ 
    type: 'POST', 
    url: 'index.php?page=page', 
    data: data, 
    success: function(callback_data) { 
     // ... 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     // ... 
    } 
}); 

S'il vous plaît voir http://api.jquery.com/jQuery.post/ vs http://api.jquery.com/jQuery.ajax/

+0

Merci, je vais regarder ça! – Newben

+0

Après avoir relu votre question, je me rends compte que je ne comprends pas la question du tout, donc cela ne vous aidera peut-être pas. Pouvez-vous montrer le code PHP, ou expliquer un peu plus? –

+0

Apparemment, votre code PHP fait écho à un 404. Le "bug" est probablement dans votre PHP et pas dans le JavaScript. Ma réponse a supposé que le 404 était un code de statut HTTP, qui serait envoyé avec PHP 'header (" HTTP/1.0 404 Not Found ");' –

Questions connexes