簡體   English   中英

通過AJAX以純JavaScript發送表單(無jQuery)

[英]Sending Form via AJAX in plain javascript (no jQuery)

我有以下表格,我想通過AJAX請求發送。 我不確定如何在“ xmlhttp.open”行中進行。 我正在嘗試將視頻文件上傳到第三方視頻托管站點(使用他們的API),他們為我提供了一個URL(“ upload_link_secure”)來上傳文件。 有人可以請教嗎?

我的HTML:

<form id="upload" action="'+upload_link_secure+'" method="PUT" enctype="multipart/form-data">
  <input type="file" id="vidInput">
  <button type="submit" id="submitFile" onclick="uploadMyVid(\''+upload_link_secure+'\')">Upload Video</button>
</form> 

我的JavaScript:

 var uploadMyVid = function(upload_link_secure){

        var form = document.getElementById('upload')

        // FETCH FILEIST OBJECTS
        var vidFile = document.getElementById('vidInput').files;

        var xmlhttp = new XMLHttpRequest;

        xmlhttp.open('PUT', );  // NOT SURE HOW TO COMPLETE THIS LINE???
        xmlhttp.send(vidFile);

    }

首先,您的action屬性不正確,請更改為某個端點,例如/upload

這是一個不帶服務器端的簡單示例。

 var form = document.getElementById("upload-form"), actionPath = ""; formData = null; var xhr = new XMLHttpRequest(); form.addEventListener("submit", (e) => { e.preventDefault(); formData = new FormData(form); actionPath = form.getAttribute("action"); xhr.open("POST", actionPath); xhr.send(formData); }, false); 
 <form id="upload-form" action="/upload" method="POST" enctype="multipart/form-data"> <input type="file" id="file"> <button type="submit">Upload Video</button> </form> 

<span>元素替換為<button>元素,使用附加在#submitFile元素上的click事件處理程序; XMLHttpRequest() FormData()處的FormData()<input type="file"> .files對象內發送File對象; 除去action屬性在<form>元素,設置URLXMLHttpRequest.prototype.open()URL提供用於PUT請求

<body>
  <form id="upload">
    <input type="file" id="vidInput">
    <span id="submitFile" 
      style="-webkit-appearance:button;-moz-appearance:button;padding:4px;font-family:arial;font-size:12px">Upload Video</span>
  </form>
  <script>
    function uploadMyVid(event) {

      // FETCH FILEIST OBJECTS
      var vidFile = document.getElementById('vidInput').files;

      var xmlhttp = new XMLHttpRequest;

      xmlhttp.open('PUT', "upload_link_secure");

      var data = new FormData();
      data.append("file", vidFile[0], vidFile[0].name);

      xmlhttp.send(data);

    }

    var button = document.getElementById("submitFile");
    button.addEventListener("click", uploadMyVid);
  </script>
</body>

暫無
暫無

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

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