場景
在同一個頁面上,點擊按鈕A后頁面不跳轉,而是動態傳入一個orderId,並且用此值去上傳圖片入庫。
問題
WebUploader無法攜帶動態傳入的orderId值
原因
因為WebUploader初始化,是在頁面第一次加載時就已經初始化完成了。
所以導致最初的數據已經提交到WebUpoader中。
而之后按鈕A點擊修改了orderId,是沒法改變已經初始化完成后的orderId的。
解決
webUploader初始化代碼如下:
//JavaScript
uploader = WebUploader.create({
...
formData: {
orderId : $("#orderId").val(),
},
...
}
由於按初次加載就讀取了值,所以我們需要調用webUploader的API方法
//JavaScript
uploader.on('uploadBeforeSend', function (obj, data, headers) {
data.orderId = orderId;
});
調用此方法,程序就會在獲取一下當前頁面最新的orderId
- 可以用在jQuery的ajax請求中進行執行
$.ajaxFileUpload({
url: ... , // 用於文件上傳的服務器端請求地址
secureuri: false, // 是否需要安全協議,一般設置為false
fileElementId: ..., // 文件上傳域的ID
dataType: 'json', // 返回值類型 一般設置為json
success: function (data){ // 服務器成功響應處理函數
uploader.on('uploadBeforeSend', function (obj, data, headers) {
data.orderId = orderId;
});
}
})