document.getElementById("save").onclick?=?function()?{?
var?request?=?new?XMLHttpRequest();
request.open("POST",?"server.php");
var?data?=?"name="?+?document.getElementById("staffName").value
??????????????????+?"&number="?+?document.getElementById("staffNumber").value?
??????????????????+?"&sex="?+?document.getElementById("staffSex").value?
??????????????????+?"&job="?+?document.getElementById("staffJob").value;
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send(data);
request.onreadystatechange?=?function()?{
if?(request.readyState===4)?{
if?(request.status===200)?{?
document.getElementById("createResult").innerHTML?=?request.responseText;
}?else?{
alert("發生錯誤:"?+?request.status);
}
}?
}
}
2016-08-01
以下是W3Cschool上對send 方法的解釋:
當send方法被用作post 請求時,需要接收string類型的參數。這就是為什么代碼中要拼出一個很長的字符串用作參數。如果想寫成JSON格式比如
那么data還是不能被用作send的參數,因為JS中變量的類型是它所指向的目標的類型,所以以上代碼中data的類型是 Object,并不為send方法所接受。
2016-08-02
我覺得一般不需要用ajax從服務器獲取圖片。用<img>標簽,瀏覽器解析到這個標簽就會自動下載圖片并進行渲染。
至于上傳圖片,我所知道的是出于安全考慮,JS是不能直接操作本地的文件。其他的不是很清楚,所以我去查了一些資料:
https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
總結一下:
可以用FormData 對象用Ajax實現文件上傳。
限制是這是XHR2 標準,只有部分瀏覽器支持.實現代碼:
還有一種實現不用formData對象,而是用絕大部分瀏覽器都支持的<form> 標簽和<iframe>來實現類似Ajax的效果,即上傳文件而不刷新頁面。我個人覺得和ajax沒有很大關系可作為參考
http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html#