J'ai une image avec un oncclick. Lorsque le clic événement incendie, je souhaite envoyer un message HTTP et avoir la fenêtre.Location rediriger vers la réponse au poteau. Comment puis-je faire ça? P>
6 Réponses :
En supposant que vous souhaitez envoyer la requête de post de manière asynchrone, vous pouvez vérifier l'exemple ci-dessous pour vous permettre d'aller dans la bonne direction:
function postOnClick()
{
var http = new XMLHttpRequest();
var params = "arg1=value1&arg2=value2";
http.open("POST", "post_data.php", true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
window.location = http.responseText;
}
}
http.send(params);
}
Cela ne fonctionne pas. http.ResponseText est le corps du document HTML (POST_DATA.PHP). Vous ne pouvez pas rediriger vers une chaîne HTML.
@Jamesbrownisdead: Cela dépend de ce que vous revenez de votre script de serveur. Si vous retournez un texte simple simple, http.responsetext code> tiendra juste l'URL. Y a-t-il une raison particulière pour laquelle votre script renvoie HTML?
Utilisez une image de type d'entrée.
<form action="someUrl.html" method="POST">
<input type="image" src="img.png" width="30" height="30" alt="Submit">
</form>
Il suffit de lier le bouton sur la méthode de soumission d'un élément de formulaire et que la redirection se produira naturellement.
<script type='text/javascript'>
function form_send(){
f=document.getElementById('the_form');
if(f){
f.submit();
}
}
</script>
<form method='post' action='your_post_url.html' id='the_form'>
<input type='hidden' value='whatever'>
</form>
<span id='subm' onclick='form_send()'>Submit</span>
Cela ne traite pas d'une adresse de redirection du corps de réponse.
Aha, j'ai manqué cette partie de la question. Cela aurait pu être formulé plus clairement.
Je suis d'accord avec la légère ambiguïté de la question. Je ne suis même pas sûr que ma réponse aborde correctement la question, même s'il a reçu 3 voix. (+1 pour compenser les bowvotes)
Merci Daniel; Je me suis initialement demandé pourquoi vous aviez suggéré d'utiliser un XHR pour cela, mais à la lecture de la relecture, je pense que c'est ce que l'Asker avait l'intention, d'obtenir un endroit comme une réponse du poste et d'y aller et il faut donc un XHR. Je reçois le sentiment que cela pourrait être résolu d'une autre manière, cependant, si l'administrateur a fourni plus de détails.
Utilisation de JQUERY Postez les données et rediriger vers votre emplacement souhaité, comme si: Vous pouvez supprimer les données : 'Formvalue = Quel qu'estvalue', code> S'il n'y a pas de données à passer à la page que vous souhaitez poster à. p> p>
Ne fonctionne pas comme prévu. 'Data' récupère la réponse de la demande, dans ce cas, le fichier "reçusata.asp" et non une URL.
au lieu de fenêtre.location = http.responsetext code> Utilisez les éléments suivants: document.open () code> efface le contenu actuel de la page et document.write () code> insère le code HTML de réponse dans votre page. p> p>
Vous pouvez utiliser cette fonction que j'ai faite:
Serait mieux si vous collez ici votre code pour voir et en discuter.