Maison >interface Web >js tutoriel >js utilise la méthode post pour ouvrir une nouvelle compétence window_javascript

js utilise la méthode post pour ouvrir une nouvelle compétence window_javascript

WBOY
WBOYoriginal
2016-05-16 16:12:471497parcourir

Généralement, ouvrir une nouvelle fenêtre en js est très simple, il suffit de window.open(url);

Mais comme je souhaite transmettre des paramètres au serveur, que les paramètres semblent être une longue chaîne et que la longueur des paramètres soumis dans la méthode get est limitée, j'ai donc les exigences suivantes :

1. Implémenter la soumission des publications en js

2. La page renvoyée sera affichée dans une nouvelle fenêtre

J'ai d'abord fait ceci :

Copier le code Le code est le suivant :
$.ajax({
Tapez : "POST",
                     url : '${contextPath}/analyse/detail.do', 
                          données : {carNum:carNum,ids:refIds}, 
Succès : function(str_response) { var obj = window.open("about:blank");                                                                                                                                                                                                                                                                                                                 } );



Soumises via jQuery ajax, les données renvoyées sont écrites dans une nouvelle page, mais comme le navigateur intercepte la fenêtre contextuelle automatique, l'utilisateur doit la débloquer lui-même et l'expérience utilisateur est très mauvaise,
Puis je l'ai implémenté en simulant la soumission d'un formulaire

Copier le code

Le code est le suivant : function post(URL, PARAMS) { var temp_form = document.createElement("form");                 temp_form .action = URL;                                                 temp_form .target = "_blank";               temp_form .method = "post";                                                   temp_form .style.display = "none"; for (var x in PARAMS) {                                                                                                                           opt.name = x;                                                                        opt.value = PARAMS[x];                                                                      temp_form .appendChild(opt);                                                                                                                                                 document.body.appendChild(temp);                                                                                                         temp_form .submit();                                                                  }


Remarque : Si vous souhaitez ouvrir une nouvelle fenêtre, l'attribut cible du formulaire doit être défini sur '_blank'

Ensuite, demandez post('${contextPath}/analyse/detail.do',{carNum:carNum,ids:refIds});
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn