2010-12-13 2 views
4

J'ai des données, permet de dire:Puis-je publier JSON sans utiliser AJAX?

var dat = JSON.stringify(frm.serializeArray()) 

Je veux le soumettre au serveur en utilisant un aller-retour (alias, non ajax).

Je sais que c'est possible, mais je ne trouve aucune documentation là-dessus. Des idées?

(j'utilise jQuery, si cela le rend plus facile)

EDIT: alors que toutes ces réponses pour répondre à bien la question, j'aurais compris que je veux une application « type de contenu » de »/ JSON "

+5

Qu'est-ce qu'un "roundtrip"? –

+0

Pourquoi ne voulez-vous pas envoyer des données en utilisant AJAX? – Crozin

+3

@Crozin AJAX n'est pas utile à 100% des cas. Si vous avez besoin d'une réponse différente comme le téléchargement dynamique d'un fichier ... rappelez-vous les limitations de JS –

Répondre

7
  1. Créez un formulaire HTML avec un attribut "id" unique. Vous pouvez le cacher en utilisant CSS "display: none". Remplissez également les attributs d'action et de méthode. Ajoutez un champ de saisie text ou hidden au formulaire. assurez-vous de lui donner un attribut "nom" significatif. C'est le nom que le serveur obtiendrait les données.
  2. En utilisant JQuery (ou bon vieux javascript) copie la variable « dat » dans le champ de saisie
  3. Soumettre le formulaire script en utilisant
2

Vous devez affecter la chaîne json à la valeur d'une entrée dans une balise de formulaire pour qu'elle soit POSTée au serveur (soit par l'utilisateur qui soumet le formulaire, soit en cliquant sur le bouton" Envoyer "par programme).

À partir de javascript, vous pouvez également utiliser window.location pour envoyer la variable dans le cadre d'une requête GET.

2
<form action="xxx.aspx" method="POST"> 
    <input type='hidden' id='dat' /> 

    <!-- Other elements --> 
</form> 

<script type='text/javascript'> 
    $('#dat').val(JSON.stringify(frm.serializeArray())); 
</script>