Utilisez AJAX pour envoyer html5 textarea directement sans html <form>

Récemment, je suis confus quant à savoir s'il est possible d'envoyer des données entrées / données textuelles directement sans être inclus dans html <form>. J'ai pensé dans la page Web, si nous voulons obtenir des informations de l'utilisateur, puis envoyer le texte au serveur d'authentification, nous devons utiliser <formulaire> indépendamment de la manière dont il est soumis.

Mais un critique anonyme de mon article prétend que <html> peut être contourné en utilisant une étiquette html5 "textarea" et une publication JS AJAX. Bien que j'ai fait beaucoup d'expériences en essayant de mettre en œuvre son chemin, mais tout a échoué.

Je me demande s'il y a vraiment un moyen de soumettre des informations utilisateur sans utiliser la balise <form>?

Je vous remercie

————————————————– ————————————————– ——

Merci pour la réponse de chacun.

Mise à jour: J'ai suivi le code "the_void" et modifié l'URL de AJAX vers un ServerSocket (mis en œuvre par Java). Le serveur a pu obtenir l'événement POST, mais il ne peut pas lire les "données" d'AJAX. Voici le code html:

HTML

<!DOCTYPE html> <head> <meta charset="utf-8" /> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script> <script type="text/javascript"> $(document).ready(function() { $('#submit').click(function() { //information to be sent to the server info = $('#foo').val(); $.ajax({ type: "POST", url: 'http://10.0.0.3:8888', data: ({foo: info}), //crossDomain: true, //dataType: 'json' }); return false; }); }); </script> </head> <body> <label>Text</label> <textarea id="foo"></textarea> <button id="submit">Submit via Ajax</button> </body> </html> 

Il semble que le serveur socket ne puisse pas lire AJAX (mais il peut lire à partir de <form> + <action>). Existe-t-il un moyen de résoudre le problème de lecture?

Je vous remercie

Ajax (Asynchronous Javascript & XML) est un moyen d'envoyer des données du client vers le serveur de manière asynchrone. Pour cela, vous devriez écrire un code pour envoyer les données dans le côté client en utilisant Javascript / HTML et aussi pour traiter les données reçues à l'aide de langages côté serveur (par ex. PHP) sur le côté serveur.

Et, oui, vous n'avez pas besoin d'une <form> pour le faire.

Consultez cet exemple.

HTML:

 <label>Text</label> <textarea id="foo"></textarea> <button id="submit">Submit via Ajax</button> 

Javascript:

 $('#submit').click(function(e) { e.preventDefault(); // information to be sent to the server var info = $('#foo').val(); $.ajax({ type: "POST", url: 'server.php', data: {foo: info} }); }); 

Server-side Handler (PHP): server.php

 <?php // information received from the client $recievedInfo = $_POST['foo']; // do something with this information 

Voir ceci pour votre référence http://api.jquery.com/jquery.ajax/

Peut-être que votre critique se référait à l'attribut HTML5 textarea "formulaire". Il permet à une zone de texte de faire partie d'une forme spécifiée sans être dans l'élément de formulaire. http://www.w3schools.com/tags/att_textarea_form.asp

Mais en général, tant que vous pouvez identifier un élément, dites une zone de texte, vous pouvez accéder au texte à l'intérieur et l'envoyer au serveur sans soumettre de formulaires à l'aide d'ajax. Du commentaire de Sable:
http://api.jquery.com/jquery.post OU http://api.jquery.com/jquery.ajax/

Oui, vous pouvez envoyer des données à un serveur sans le mettre sous form . Les formulaires fournissent un mécanisme plus simple pour envoyer de plus grandes quantités de données à un serveur sans que le développeur ait à indiquer au navigateur comment coder le formulaire.

PAR EXEMPLE:

HTML

JS

 var text = $("input[type='text']").val(); $.post("/my/server/url", { userInput : text }, function(data){ /* Success! */}); 

Cela afficherait techniquement les données sur le serveur sans formulaire.