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("發(fā)生錯誤:"?+?request.status);
}
}?
}
}
2016-08-01
以下是W3Cschool上對send 方法的解釋:
當(dāng)send方法被用作post 請求時,需要接收string類型的參數(shù)。這就是為什么代碼中要拼出一個很長的字符串用作參數(shù)。如果想寫成JSON格式比如
那么data還是不能被用作send的參數(shù),因?yàn)镴S中變量的類型是它所指向的目標(biāo)的類型,所以以上代碼中data的類型是 Object,并不為send方法所接受。
2016-08-02
我覺得一般不需要用ajax從服務(wù)器獲取圖片。用<img>標(biāo)簽,瀏覽器解析到這個標(biāo)簽就會自動下載圖片并進(jìn)行渲染。
至于上傳圖片,我所知道的是出于安全考慮,JS是不能直接操作本地的文件。其他的不是很清楚,所以我去查了一些資料:
https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
總結(jié)一下:
可以用FormData 對象用Ajax實(shí)現(xiàn)文件上傳。
限制是這是XHR2 標(biāo)準(zhǔn),只有部分瀏覽器支持.實(shí)現(xiàn)代碼:
還有一種實(shí)現(xiàn)不用formData對象,而是用絕大部分瀏覽器都支持的<form> 標(biāo)簽和<iframe>來實(shí)現(xiàn)類似Ajax的效果,即上傳文件而不刷新頁面。我個人覺得和ajax沒有很大關(guān)系可作為參考
http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html#