2011-11-08 4 views
2

Je fais un simple post d'un formulaire en utilisant jquery. Le problème est le $ .ajax avec POST fonctionne mais $ .post n'est pas. Regardez le code ci-dessous:

$.post(
     { 
      url: url, 
      data: form.serialize(), 
      success: function (result) { 
       alert('startline posted'); 
      }     
     }); 

Et l'édition travail

  $.ajax(
     { 
      url: url, 
      type: "POST", 
      data: form.serialize(), 
      success: function (result) { 
       alert('startline posted'); 
      }, 
      error: function (jqXhr, textStatus, errorThrown) { 
       alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
      } 
     }); 

Been débogage l'exemple .post $ jusqu'à ce que je voulais juste essayer l'édition .ajax $ pour obtenir un msg d'erreur. Mais malheureusement, cela a juste fonctionné :)

En quoi les deux méthodes sont-elles différentes?

+2

Dans votre mise au point était-il une différence entre les demandes créées par chaque méthode? Regarder les demandes dans quelque chose comme l'onglet Net dans FireBug peut révéler plus d'informations. – David

+2

http://api.jquery.com/jQuery.post/ – PeeHaa

Répondre

2

Le format de paramètre pour jQuery.post est url, data, callback, datatype. Le paramètre pour jQuery.ajax est url, options ou simplement options comme vous utilisez. En d'autres termes, le formatage de votre appel $.post est incorrect.

+0

Merci, Comment pourrais-je manquer cela. Vous obtenez la réponse lorsque vous avez expliqué pourquoi. –

0

Ce n'est pas la façon dont vous utilisez $.post

$.post('url/here.php', { 

    data: form.serialize() 
}, function(result) { 

    alert('startline posted'); 
}); 
1

$.post prend plusieurs arguments, et non pas un objet comme $.ajax. essayer comme ceci:

$.post(url, form.serialize(), function (result) { 
       alert('startline posted'); 
      });  
2
$.post(url, form.serialize()) 
    .success(function (result) { 
       alert('startline posted'); 
}); 

l'essayer