Comment utiliser getJSON, l'envoi de données avec la méthode post?
Je suis en utilisant la méthode ci-dessus, & il fonctionne bien avec un paramètre dans l'URL.
par exemple Students/getstud/1
où controller/action/format de paramètre est appliqué.
Maintenant, j'ai une action à des Étudiants contrôleur qui accepte deux paramètres et retourner un objet JSON.
Alors, comment puis-je publier des données avec $.getJSON()
à l'aide de la méthode post?
Des méthodes similaires sont également acceptables.
Le point est de faire appel à une action du contrôleur avec AJAX.
get
dansgetJSON
l'utilisation de certains json.- Fouladpour Quand j'ai posé cette question, je n'ai pas été sachant que..!
Vous devez vous connecter pour publier un commentaire.
L' $.getJSON() la méthode un HTTP GET et pas POST. Vous avez besoin d'utiliser $.post()
Que dans l'appel,
dataToBeSent
pourrait être tout ce que vous voulez, mais si envoyer le contenu d'un formulaire html, vous pouvez utiliser le sérialiser méthode pour créer les données pour le POST de votre forme.C'est mon "on-line" solution:
Afin d'utiliser jsonp, et la méthode POST, cette fonction ajoute le "rappel" paramètre GET à l'URL. C'est la façon de l'utiliser:
Le serveur doit être prêt à gérer le rappel d'OBTENIR paramètre et retourne la chaîne json comme:
dans lequel "jsonp000000" est le rappel d'OBTENIR la valeur.
En PHP la mise en œuvre serait comme:
J'ai fait quelques croix-domaine des essais et il semble fonctionner. Encore besoin de plus de tests que.
?callback
? dans l'url? Que fait le rappel de ne pas être appelé pour moi. J'ai également ajoutéJSON.stringify(data)
. +1, utile post!jQuery.getJSON = function(url, data, func) { return $.get(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }
Juste ajouter ces lignes dans votre
<script>
(quelque part après jQuery est chargé, mais avant de poster quoi que ce soit):Remplacer (certains/tous)
$.getJSON
avec$.postJSON
et profitez-en!Vous pouvez utiliser le même Javascript fonctions de rappel avec
$.getJSON
.Pas de serveur-côté le changement est nécessaire. (Eh bien, je le recommande toujours à l'aide de
$_REQUEST
en PHP. http://php.net/manual/en/reserved.variables.request.php, Entre le $_REQUEST, $_GET et $_POST lequel est le plus rapide?)C'est plus simple que @lepe de la solution.
J'ai eu le code qui était en train de faire getJSON. J'ai simplement remplacé par la poste. À ma grande surprise, il a travaillé
J'ai simplement utilisé la poste et une si:
$.getJSON()
est assez pratique pour l'envoi d'une requête AJAX et JSON que les données de réponse. Hélas, le jQuery documentation manque d'une sœur de la fonction qui doit être nommé$.postJSON()
. Pourquoi ne pas simplement utiliser$.getJSON()
et être fait avec elle? Eh bien, peut-être vous voulez envoyer une grande quantité de données ou, dans mon cas, IE7 ne veut tout simplement pas fonctionner correctement avec une requête GET.Il est vrai, il n'y a actuellement aucune
$.postJSON()
méthode, mais vous pouvez accomplir la même chose en spécifiant un quatrième paramètre (type) dans la$.post()
fonction:Mon code ressemble à ceci:
si vous avez seulement deux paramètres que vous pouvez faire ceci: