0
我有一個問題涉及使用POST下載文件。POST請求導致GET調用不響應
我有以下的javascript它發送POST請求到服務器端下載文件:
function postCall(url, params) {
function doPostCall() {
var newForm = jQuery('<form>', {
'method':'POST',
'action': url
});
for(key in params) {
if (params.hasOwnProperty(key)) {
newForm.append(jQuery('<input>', {
'name': key,
'value': params[key],
'type': 'hidden'
}));
}
}
newForm.appendTo("body").submit();
}
這種方法是從HTML頁面中的iframe的無形叫。此頁面還有另一個正常的GET請求來獲取靜態HTML。但是,每次調用上述方法時,獲取靜態頁面的調用都不會從服務器端返回。
我知道用這麼少的信息有點難以理解,但代碼很龐大,很難放在這裏。我的問題是:
- 是否有與使用一種無形的形式發送POST請求獲取文件上面的代碼中任何明顯的問題?
- 有沒有其他更好的方法發送POST請求到服務器來下載文件。 (人們告訴Ajax調用不能用於下載文件)?
- 如果這段代碼沒問題,並且沒有其他方法可用。有沒有辦法強制這個方法在整個頁面加載完成並且所有其他請求都完成後最後一次運行?
是否GET請求得到應有中止通過表單提交發起的頁面重載?通常這樣的表單帖子具有指向特定iframe的目標屬性,導致iframe重新加載,但不是整個頁面,這將允許您的獲取請求完成。 –
我不明白你爲什麼不能使用AJAX做下載。爲什麼在你獲得某些東西時使用POST? – putvande
@putvande因爲使用ajax,你不能將內容作爲文件發送給用戶的計算機。 –