jQuery.form插件是一個(gè)十分方便的工具,它可以用于在網(wǎng)站中上傳表單數(shù)據(jù)和文件。在IE瀏覽器下下載文件的表單處理,是jQuery.form插件中十分有用且需要注意的一項(xiàng)問(wèn)題。
$('#form-id').ajaxForm({ url: 'post.php', success: function() { $('#message').html('文件上傳成功!').fadeOut(5000); }, error: function(xhr) { $('#message').html('文件上傳失敗,錯(cuò)誤代碼:' + xhr.status).fadeOut(5000); } });
使用jQuery.form插件時(shí),我們可以很輕松地使POST請(qǐng)求,但是在IE瀏覽器下,卻無(wú)法下載響應(yīng)的文件。這是因?yàn)镮E瀏覽器有一個(gè)特殊的處理機(jī)制,會(huì)阻止表單的響應(yīng)信息直接打開(kāi)文件。所以,一種應(yīng)對(duì)方式是使用iframe來(lái)進(jìn)行提交。
$('#form-id').ajaxForm({ url: 'post.php', type: 'post', iframe: true, success: function() { $('#message').html('文件上傳成功!').fadeOut(5000); }, error: function(xhr) { $('#message').html('文件上傳失敗,錯(cuò)誤代碼:' + xhr.status).fadeOut(5000); } });
如果不使用iframe上傳文件,IE瀏覽器下依然可以正常實(shí)現(xiàn)功能。但是對(duì)于下載文件,必須使用iframe 。注意,服務(wù)器端的響應(yīng)頭信息中,必須加上 Content-Disposition 和 Content-Type 屬性。而jQuery.form插件讓我們不必?fù)?dān)心瀏覽器兼容性的問(wèn)題,還提供了很多其他方便的選項(xiàng)。