簡體   English   中英

使用AJAX不帶html直接發送html5 textarea<form>

[英]Use AJAX to send html5 textarea directly without html <form>

最近我對是否可以直接發送 input/textarea 數據而不包含在 html <form>感到困惑。 我想在網頁中,如果我們想從用戶那里獲取信息然后將文本發送到身份驗證服務器,我們必須使用<form>而不管它以哪種方式提交。

但是我論文的匿名審稿人聲稱可以通過使用 html5 標簽“textarea”和 JS AJAX 帖子繞過<html> 雖然我做了很多嘗試實現他的方式的實驗,但都失敗了。

我想知道是否真的有某種方法可以在不使用<form>標簽的情況下提交用戶信息?

謝謝


謝謝大家的回復。

更新:我按照“the_void”的代碼將 AJAX 的 url 更改為 ServerSocket(由 Java 實現)。 服務器能夠獲取 POST 事件,但無法讀取 AJAX 的“數據”。 以下是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>

似乎套接字服務器無法從 AJAX 讀取(但它可以從 <form> + <action> 讀取)。 有沒有辦法解決閱讀問題?

謝謝

Ajax(Asynchronous Javascript & XML)是一種將數據從客戶端異步發送到服務器的方法。 為此,您必須編寫代碼以使用 Javascript/HTML 在客戶端發送數據,並在服務器端使用服務器端語言(例如 PHP)處理接收到的數據。

而且,是的,您不需要<form>標簽來這樣做。

看看這個例子。

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}
    });
});

服務器端處理程序(PHP): server.php

<?php 

// information received from the client
$recievedInfo = $_POST['foo'];

// do something with this information

請參閱此供您參考http://api.jquery.com/jquery.ajax/

也許您的審閱者指的是 HTML5 textarea 屬性“form”。 它允許 textarea 成為指定表單的一部分,而無需位於表單元素內。 http://www.w3schools.com/tags/att_textarea_form.asp

但一般來說,只要你能識別一個元素,比如一個 textarea,你就可以訪問其中的文本並將其發送到服務器,而無需使用 ajax 提交任何表單。 來自 Sable 的評論:
http://api.jquery.com/jquery.posthttp://api.jquery.com/jquery.ajax/

是的,您可以將數據提交到服務器而無需將其放入form 表單提供了一種更簡單的機制,可以將大量數據發送到服務器,而無需開發人員告訴瀏覽器如何對表單進行編碼。

例如:

HTML

JS

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

從技術上講,這將在沒有表單的情況下將數據發布到服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM