Passage de variables avec POST sur une autre page avec Jquery

Je suis relativement nouveau sur Jquery et je me demandais comment on pourrait poster des variables sur une autre page puis les redirect? J’ai utilisé la fonction ajax, la redirection fonctionne bien, mais aucune variable n’est capturée dans POST (elles sont vides)

function linkWO() { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "LinkTagOut.aspx", dataType: "json", data: "{id=1}", complete: function () { window.location = "LinkTagOut.aspx"; } }); } 

dans mon fichier aspx

 Link 

Cette réponse est juste pour une solution rapide

pourquoi ne vous passez pas comme chaîne de requête ici

 window.location = "LinkTagOut.aspx?variabletopass=test"; 

code du site jquery

 
Trigger the handler
$('#target').submit(function() { $ .post('ajax/test.html', function(data) { }); return false; });
 $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "LinkTagOut.aspx", dataType: "json", data: { id: 1 }, // or the ssortingng: 'id=1' complete: function () { window.location = "LinkTagOut.aspx"; } }); 

De la documentation $ .ajax (option data ):

Données à envoyer au serveur. Il est converti en une chaîne de requête, si ce n’est déjà une chaîne. Il est ajouté à l’URL pour les requêtes GET. Voir l’option processData pour empêcher ce traitement automatique. L’object doit être une paire clé / valeur. Si value est un tableau, jQuery sérialise plusieurs valeurs avec la même clé en fonction de la valeur du paramètre traditionnel (décrit ci-dessous).

Assurez-vous également de return false à la fin du gestionnaire d’envoi (ou quoi que ce soit qui déclenche l’appel ajax) pour vous assurer qu’une redirection «normale» ne se produit pas.

Jetez un coup d’œil à l’option “data” de cette page de doc: http://api.jquery.com/jQuery.ajax/

Votre problème est que vous essayez de passer une chaîne json (et que c’est valide pour passer une chaîne), mais si vous passez une chaîne, jQuery attend une chaîne de requête paramétrée. Si vous voulez passer un object JSON, il ne devrait pas s’agir d’une chaîne.

Cependant, notez que les objects json passés de cette manière seront convertis en chaîne de requête paramétrée par jQuery. Par conséquent, si cela ne vous gêne pas (comme dans ce cas où vous n’avez qu’une valeur), vous pouvez tout aussi bien le transmettre de cette façon avec et enregistrez le script un peu de travail.

Si vous aimez moins coder, faites ceci:

  1. incluez jquery.redirect.min.js dans votre dossier javascript (js).
  2. Charger le fichier APRES JQUERY script de chargement:

       
  3. Remplacez simplement les parameters souhaités sur la ligne suivante (copier / coller) dans votre code javascript:

     $().redirect('targeturl.html', {'post_var_1': 'value1', 'post_var_2': 'value2'}); 

C’est la méthode la plus simple et la plus rapide que j’ai trouvée pour publier des variables sur une autre page sans utiliser la balise de formulaire. Bonne chance!