JavaScript已經成為了網頁開發中不可缺少的一部分,通過它可以實現網頁的動態交互效果。其中,上傳信息至服務器是實現動態交互效果的重要一步。下面將詳細介紹JavaScript怎樣上傳信息至服務器。
如果想要上傳信息至服務器,首先需要定義上傳信息的目標地址。在HTML中可以通過form標簽定義上傳表單并且指定上傳信息的目標地址。編寫好包含上傳表單的HTML文件后,通過JavaScript來讓表單提交至服務器。如下所示:
function uploadForm(){ var xhr = new XMLHttpRequest(); xhr.open('POST', "upload.php", true); // upload.php是服務器上的處理程序 xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ alert(xhr.responseText); // 服務器返回的信息 } } xhr.send(new FormData(document.getElementById("formId"))); // formId是上傳表單的id }
上面的代碼分析如下:
- 第一步是創建XMLHttpRequest對象,它是從客戶端發送請求到服務器端的橋梁。
- 第二步是調用xhr對象的open方法,指定請求方式(POST、GET)、服務器地址和是否異步請求等參數。
- 第三步是調用xhr對象的onreadystatechange方法監聽上傳狀態的改變。
- 第四步是使用FormData對象將表單數據打包發送給服務器。
在服務端, PHP的代碼處理表單的數據,如果上傳的文件大小超過了upload_max_filesize或post_max_size指令設置,在PHP的世界里,$_FILES和$_POST數組變量都為空;如果成功,可以通過以上的方式獲取傳遞過來的其他表單信息。
在前端,還可以使用jQuery提供的ajax方法來發送表單數據至服務器。使用jQuery發送表單數據的代碼如下:
$("#uploadForm").submit(function(e) { e.preventDefault(); // 阻止表單默認提交 $.ajax({ url : "upload.php", type : "POST", data : new FormData(this), processData : false, contentType : false, success : function(data) { alert(data); } }); });
在發送的請求中,contentType參數設置為false可以幫助我們打破FormData對象在發送時的默認Content-Type頭,contentType為false時,我們可以上傳文件。
總結,JavaScript上傳信息給服務器主要包括發送方式、目標地址、上傳的數據格式等。通過以上的代碼,可以以POST方式上傳表單至服務器并處理接收到的數據。
下一篇css怎么設置不會變形