Ajax最大的特點就是可以不刷新頁面而實現數據的通信及更改頁面信息。那么用AJAX進行后台通信傳遞字符串還是可以的,遇到上傳文件該怎么辦呢?基於安全考慮,JS是不能直接進行文件操作的,只好用原始的from來提交文件上傳了。這樣一來,用form不就要刷新頁面了嗎?其實也不是。
給我們的from加一個target屬性,並且將這個屬性的值設置為隱藏的iframe的ID,這樣一來,刷新的頁面是我們隱藏的iframe,我們的頁面就不會刷新了。這個方法,時廣大前輩的知識和經驗的結晶,我是不費吹灰之力拿來用了,站在巨人的肩膀上。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>AjaxUpload</title> </head> <body onLoad="javascript:alert('onload')" onUnload="javascript:alert('onunload')"> <form name="AjaxUpload" method="post" action="upload.jsp" target="hidden_frame"> <input type="submit" name="Submit" value="提交"> </form> <iframe name='hidden_frame' id="hidden_frame" style="display:none"></iframe> </body> </html>